java - 如何检查对象是否实现了特定的接口(interface),而不是这个接口(interface)的后代,在 Java 中

标签 java class interface instanceof

我有一个树结构,其中一些节点必须只包含实现特定接口(interface)的对象。但是存在扩展该接口(interface)的接口(interface),实现它们的对象不应包含在节点中。
所以我需要检查对象是否实现了严格的特定接口(interface)。

public interface IProcessCell {...}
public interface IMethodCell extends IProcessCell {...}

IProcessCell processInstance = new IProcessCell() {...}
IMethodCell methodInstance = new IMethodCell() {...}

/** Method implementing desired check */
public boolean check(IProcessCell instance) {...}

方法检查必须为 processInstance 返回 true,但为 methodInstance 返回 false

最佳答案

您可以使用 http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html#getInterfaces()

但对我来说,您正在尝试做的事情就像修补写得不好的应用程序。对我来说,更好的方法是创建一个新接口(interface)(只有所需的对象才会实现)并使“树结构”节点需要该特定接口(interface)。

关于java - 如何检查对象是否实现了特定的接口(interface),而不是这个接口(interface)的后代,在 Java 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15933945/

相关文章:

Java、泛型和静态方法

java - 两个或多个接口(interface)可以有相同的方法吗?

java - 如何使用 UriInfo 测试 JERSEY Controller 方法

java - 有没有办法从准备好的语句中检索自动增量 ID

隐藏但不是静态的Java方法

php - MySQLi insert_id()

c# - 接口(interface)继承和子接口(interface)

java - 合并现有的 Hibernate 模型对象时出现 UnsupportedOperationException?

c++ - 什么是空类的大小以及 C++ 中 union 、结构和类之间的区别?

c++ - "Pass"从类到类的函数调用,C++