gpt4 book ai didi

java - java 方法 : isAssignableFrom(Class)

转载 作者:行者123 更新时间:2023-12-01 23:10:53 27 4
gpt4 key购买 nike

如果您尝试以下代码(我在 Java 6 上尝试过):

System.out.println(Collection.class.isAssignableFrom(Set.class));

它打印出:false但我期望打印出:true因为 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.

BUT Collection 是 Set 的父类(super class):public interface Set<E> extends Collection<E> .

那么这种奇怪行为的解释是什么?

最佳答案

问题在于您导入了错误的 Collection.class 或错误的 Set.class

请注意,在 Collection 类上使用 isAssignableFrom 方法时存在一些常见的陷阱:我经常注意到人们混淆了参数,因此他们调用 Set .class.isAssignableFrom(Collection.class) 而不是调用 Collection.class.isAssignableFrom(Set.class)

另一个经常引起人们注意的问题与 Map.class 有关,它不是一个集合

希望这有帮助。

关于java - java 方法 : isAssignableFrom(Class<? 上的奇怪行为 >),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21992030/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com