java - 为什么 Java 的 String 不能从 Comparable 接口(interface)赋值

标签 java reflection

JavadocString工具 Comparable<String>

但是,下面的代码返回 false :

String.class.isAssignableFrom(Comparable.class)

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

最佳答案

你误解了什么isAssignableFrom(cls)操作。引用 Javadoc:

Determines if the class or interface represented by this Class object is either the same as, or is a superclass or superinterface of, the class or interface represented by the specified Class parameter. It returns true if so; otherwise it returns false. If this Class object represents a primitive type, this method returns true if the specified Class parameter is exactly this Class object; otherwise it returns false.

这意味着当你检查

String.class.isAssignableFrom(Comparable.class)

您实际上是在检查 String 类是否是 Comparable 类的父类(super class),而不是相反。你应该检查:

Comparable.class.isAssignableFrom(String.class)

关于java - 为什么 Java 的 String 不能从 Comparable 接口(interface)赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34492893/

相关文章:

java - 如何结合switch语句和if case?

java - 确定对象是否为原始类型

c# - 为多个 getter 执行的公共(public)操作

c# - 嵌套类和动态调用问题

java - 在Java中为Logstash/Kibana的代码中设置索引

java - 在没有循环引用的情况下使用 Spring IOC 连接 MVP?

java - 防止将重复对象添加到 ArrayList 或 HashSet

java - Android Studio - 尝试签署 facebook 或 google 时 Firebase 返回 null

scala - 如何在 SBT 任务中使用反射从源代码加载类?

c# - 反射性能 - 创建委托(delegate)(属性 C#)