你可以在不分配给另一个物体的情

Erk*_*ner 1 java reflection casting

在java中,可以转换对象而不必将其分配给另一个对象.例如:

Object x = Class.forName(name).newInstance();
if(x instanceof Date){
    (Date)x; 
    x.setTime(0);
}
Run Code Online (Sandbox Code Playgroud)

编译器不允许我这样做,除非我将它分配给另一个Date对象,但有没有一种方法可以在不必分配给另一个对象的情况下进行转换?

因为当您分配例如:Date a = (Date)x,a和x最终成为引用时,两者都能够触及Date方法.但为了使我的代码更清晰,有没有一种方法可以在不必分配的情况下进行投射?

Jas*_*son 8

这样做是有效的:

Object x = Class.forName(name).newInstance();
if(x instanceof Date){
    ((Date)x).setTime(0);
}
Run Code Online (Sandbox Code Playgroud)