我有一个界面:
public interface Myinterface{
...
}
该接口由三个类实现,我们将它们命名为ClassOne
, ClassTwo
, ClassThree
。
现在,我有一个辅助方法,它返回一个 type 实例MyInterface
。例如
MyInterface myInstance = MyHelper.getOneInstance();
我如何检查返回的实例是否myInstance
是一个实例,ClassThree
在Java中如何做?
(我知道instanceof
Java 中有关键字,但它正在以相反的方式检查。我想知道实例来自哪个具体类。)
要检查对象是否是特定类的实例,您可以使用类中的getClass()
方法Object
。
例如,这仅在myInstance
是ClassThree
对象时才成立:
if (myInstance.getClass() == ClassThree.class)
现在,通常这不一定更健壮,因为它破坏了 OOP 的一些好处。
一种更面向 OOP 的方法是引入一种可用于执行此检查的方法。
由于您没有给出具体示例,因此很难给出改编的示例,但假设您想保存一些类(如果这些类是可记录的)。
您可以boolean isRecordable()
在界面中引入一个方法。
这样你可以这样做:
if (myInstance.isRecordable()){
...
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句