gpt4 book ai didi

java - 从基类的 ArrayList 转换为继承类

转载 作者:行者123 更新时间:2023-12-02 04:44:13 27 4
gpt4 key购买 nike

我有两个类 A 和 B ,其中 A 是基类,B 是从 A 继承的。

Class A
{
int foo=10;
}

Class B extends A
{
int bar=100;
}

我声明一个 A 类的 ArrayList,并向其中插入 A 类和 B 类对象。

我的问题是,当我尝试获取 A 类的 ArrayList 中的 B 类对象,然后将其转换为 B 类时,如下所示

B foobar = (B)ArrayListOfClassA.get(IndexOfClassB).

对象 B 中的 bar 值未定义。

How do i get the value of Object B from the ArrayList of Class A ???

最佳答案

不要尝试像这样对实例进行类型转换。使用 getClass()== 调用任何方法/字段之前检查类型。

if(myInstance.getClass()==B.class)
//print myInstance.bar

注意:这不是一个好的设计,因为你破坏了引入泛型的最重要的事情(你可以看到这样做时会发生什么)

关于java - 从基类的 ArrayList 转换为继承类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29815864/

27 4 0