gpt4 book ai didi

java - 为什么 ArrayList.class.isInstance(ArrayList.class) 返回 false?

转载 作者:行者123 更新时间:2023-12-01 17:44:36 25 4
gpt4 key购买 nike

现在我正在思考并遇到对我来说不太清楚的行为。

Class<? extends List> listClass = ArrayList.class.asSubclass(List.class);

System.out.println(listClass.isInstance(ArrayList.class)); //print false
System.out.println(listClass.getSimpleName());// print ArrayList

抱歉,如果我的问题很愚蠢并且不是新问题,但我不明白为什么

listClass.isInstance(ArrayList.class) 返回 false,尽管

listClass.getSimpleName() 返回ArrayList

有人可以解释一下这种行为吗?提前致谢。

最佳答案

当您调用时:

listClass.isInstance(ArrayList.class)

您正在检查是否 ArrayList.classlistClass 的一个实例。但事实并非如此,它是 Class本身!

相反,请尝试:

listClass.isAssignableFrom(ArrayList.class);

或者,正如 Psehemo 在评论中提到的那样,使用 new ArrayList<>()作为您的参数。

关于java - 为什么 ArrayList.class.isInstance(ArrayList.class) 返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57203991/

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