接口类型实例来自哪个类

壤土

我有一个界面:

public interface Myinterface{
  ...
}

该接口由三个类实现,我们将它们命名为ClassOne, ClassTwo, ClassThree

现在,我有一个辅助方法,它返回一个 type 实例MyInterface例如

MyInterface myInstance = MyHelper.getOneInstance();

我如何检查返回的实例是否myInstance是一个实例,ClassThree在Java中如何做?

(我知道instanceofJava 中关键字,但它正在以相反的方式检查。我想知道实例来自哪个具体类。)

戴维xxx

要检查对象是否是特定类的实例,您可以使用类中getClass()方法Object

例如,这仅在myInstanceClassThree对象时才成立

if (myInstance.getClass() == ClassThree.class)

现在,通常这不一定更健壮,因为它破坏了 OOP 的一些好处。
一种更面向 OOP 的方法是引入一种可用于执行此检查的方法。

由于您没有给出具体示例,因此很难给出改编的示例,但假设您想保存一些类(如果这些类是可记录的)。
您可以boolean isRecordable()在界面中引入一个方法。

这样你可以这样做:

if (myInstance.isRecordable()){
    ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章