This question already has answers here:
How to check if a subclass is an instance of a class at runtime? [duplicate]
(7个答案)
4年前关闭。
考虑类
我如何找出该对象的子类是什么?我无权访问
编辑以澄清问题:我知道如何检查
(7个答案)
4年前关闭。
考虑类
MinorClassA
和MinorClassB
,它们都扩展了MajorClass
。我有一个MajorClass
的对象,我肯定知道它实际上是其子类之一的实例。MinorClassA subclassedObj = new MinorClassA();
MajorClass obj = subclassedObj;
//------ More code -------------
if( subclassof(obj) == MinorClassA) //Something like this
我如何找出该对象的子类是什么?我无权访问
subclassedObj
,只能访问obj
。编辑以澄清问题:我知道如何检查
MinorClassA
是否是MajorClass
的实例,但不是这样。 最佳答案
听起来像您想要instanceof
operator:
在运行时,如果RelationalExpression的值不为null,且instanceof
运算符的结果为true,并且可以在不引发ClassCastException
的情况下将引用强制转换为ReferenceType。否则结果为假。
因此,在您的情况下:
if (obj instanceof MinorClassA) {
...
}
09-30 17:49