如果传入的java类是接口List的实现,我需要编写一个函数来返回true。有人知道如何在java中这样做吗?
类似的东西:
public boolean canConvert(Class c) {
//return true is c is an implementation of the interface List
}
由于
答案 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的结果。