繁体   English   中英

为什么不能从Comparable接口分配Java的String

[英]Why Java's String is not assignable from Comparable interface

JavadocString实现Comparable<String>

但是,以下代码返回false

String.class.isAssignableFrom(Comparable.class)

如何检查某个类是否实现了给定的接口?

您误解了isAssignableFrom(cls)作用。 引用Javadoc:

确定此Class对象表示的类或接口是否与指定的Class参数表示的类或接口相同,或者是该类或接口的超类或超接口。 如果是,则返回true;否则返回true。 否则返回false。 如果此Class对象表示原始类型,则如果指定的Class参数正是此Class对象,则此方法返回true;否则,此方法返回true。 否则返回false。

这意味着当您检查

String.class.isAssignableFrom(Comparable.class)

您实际上是在检查String类是否是Comparable类的超类,而不是相反。 您应该检查:

Comparable.class.isAssignableFrom(String.class)

您必须反转对象和参数。 代替

String.class.isAssignableFrom(Comparable.class)

你必须用

Comparable.class.isAssignableFrom(String.class)

javadoc

判定此Class对象所表示的类或接口或者相同,或是一个超类或超接口中 ,通过指定的Class 参数所表示的类或接口。 如果是,则返回true;否则返回true。 否则返回false。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM