如何确定一个类是否是java中接口的实现

时间:2011-05-18 20:12:19

标签: java class interface

如果传入的java类是接口List的实现,我需要编写一个函数来返回true。有人知道如何在java中这样做吗?

类似的东西:

public boolean canConvert(Class c) {

  //return true is c is an implementation of the interface List

}

由于

4 个答案:

答案 0 :(得分:8)

有两种不同的情况:

  • 您想要检查给定的是否是List的子类/实现者。从你的方法签名(Class c)来看,这就是你想要的。在那种情况下使用

    List.class.isAssignableFrom(c)
    
  • 您想要查看给定对象是否是我们List的子类/实现者的类的实例。在这种情况下,使用obj instanceof List,正如Bala R建议的那样。

答案 1 :(得分:4)

尝试使用instanceof运算符。

return c instanceof List;

答案 2 :(得分:2)

如果是你做的实例

c instanceof List

如果它是一个类,那么你

List.class.isAssignableFrom(c)

答案 3 :(得分:0)

通过调用Class的{​​{3}}来广泛地回答问题。如果您需要明确知道它是否直接实现,则必须遍历数据结构。

更具体的答案来自搜索this function的结果。