gpt4 book ai didi

java - isAssignableFrom 不为子类返回 true

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:02:04 27 4
gpt4 key购买 nike

所以我想检查一个类是否可以分配给包含许多子类的父类(super class),像这样

public class A { 
public A(){ }
}

public class B extends A {
public B(){ }
}

public class C extends B {
public C(){ }
}

public static void main() {
A a = new C();
boolean whyAmIFalse = a.getClass().isAssignableFrom(B.class);
}

为什么返回 false?显然它可以分配给B类作为

B b = (B)a

没有返回错误,为什么返回 false。这不是它描述自己的功能吗?是否有一个功能可以完成我想要的功能(即我是那个类或它的子类)?

最佳答案

如果你想做的是测试 a 的实际类型是 B 还是子类型,你就搞反了:它是

 B.class.isAssignableFrom(a.getClass());

关于java - isAssignableFrom 不为子类返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12522299/

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