我很清楚反射应该只能作为最后的手段,即使您处于似乎您应该依赖的情况下,也可能意味着您的设计不好。这是一个非常强大的工具,只能极其谨慎地使用。在Java中使用Object.getClass()是不好的做法吗?
我也知道,的Java存储一些家政信息有关对象,所以理论上它应该是一个相对便宜的操作以确定动态类型的对象与Object.getClass()
(至少便宜相比,没有这样的语言管家数据,例如C++,其中RTTI需要昂贵的vtable查找)。
这是真的吗? 难道认为坏实践中的Java 检查一个objec一些基本的的吨一定使用getClass()
派生型?
'instanceof'对于派生自类SomeBaseClassObject''的类的实例返回'true',所以它不一样。 – Martin
正确,但您会用它来检查您关心的父级/子级别中的级别。如果你想验证它是一个子对象,那么instanceof就是这个。您可以根据需要缩小范围。 – pczeus
正确,但可以使用'getClass()'来检查一个实例是否是查找类型的_exactly_。 – Martin