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方法.但为了使我的代码更清晰,有没有一种方法可以在不必分配的情况下进行投射?
这样做是有效的:
Object x = Class.forName(name).newInstance();
if(x instanceof Date){
((Date)x).setTime(0);
}
Run Code Online (Sandbox Code Playgroud)