Javadoc说String
工具Comparable
但是,以下代码返回false
:
String.class.isAssignableFrom(Comparable.class)
如何检查某个类是否实现了给定的接口?
你误解了什么isAssignableFrom(cls)
在运作.引用Javadoc:
确定此Class对象表示的类或接口是否与指定的Class参数表示的类或接口相同,或者是它们的超类或超接口.如果是这样,它返回true; 否则返回false.如果此Class对象表示基本类型,则如果指定的Class参数恰好是此Class对象,则此方法返回true;否则返回true.否则返回false.
这意味着当你检查时
String.class.isAssignableFrom(Comparable.class)
你实际上在检查这个String
班级是否是班级的超级Comparable
班级,而不是相反.你应该检查:
Comparable.class.isAssignableFrom(String.class)