2013-05-16 122 views
0

我试图检查一个对象是否实现了一个接口(如果那个对象的类实现了接口)。Java - 检查一个对象(类)是否实现了一个接口

我该怎么做?我看到你可以做this.getClass()。getInterfaces(),但是这给了我一个数组,我需要搜索该数组,但是我用什么来检查?

+3

当你问你的问题,只是在你的标题打字时,SO界面向您显示了与其相关的现有问题列表。上面指出的[the assylias,myself,and other](http://stackoverflow.com/questions/766106/test-if-object-implements-interface)是**列表中的第二个**。当答案已经存在时,为什么又要问这个问题呢? –

+0

这个问题不值得被如此低估... – assylias

+1

@assylias:有些人解释为“......没有显示研究努力......”,因为包括在询问时不打扰类似问题的列表。 (好或坏...) –

回答

4

您可以在Java中使用instanceof运算符。 JLS说,

在运行时,如果RelationalExpression的值不为null并且可以将引用强制转换为ReferenceType而不引发ClassCastException,则instanceof运算符的结果为true。

instanceof operator是一个二元运算符,用于测试对象(实例)是否为给定类型的子类型。

// checks if bar object's class implements SomeInterface 
if (bar instanceof SomeInterface) 
5

如果你需要知道,如果实例foo是实现一个给定接口的类的,你可以使用instanceof

if (foo instanceof TheInterface) 
相关问题