我有一个树结构,其中一些节点必须只包含实现特定接口(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/