Object o = getRectangle();
if(o instanceof Rectangle){
Rectangle r = (Rectangle) o;
}
如果getRectangle()返回一个Rectangle(Rectangle是我项目中的一个类),我是否可以像这样将Rectangle分配给对象?
答案 0 :(得分:0)
是。你提到的代码可以使用。
如果原始对象是要转换为的对象的实例,则对象的转换将始终有效。既然你已经检查过o是否是Rectangle的一个实例,那么这里没有问题。
我更关心你对Rectangle r的处理方式。变量r的范围完全在最内层的if()语句中。因此,如果您想访问if (o instanceof Rectangle)
之外的r,除非您在if语句之外声明它,否则这是不可能的。