gpt4 book ai didi

java - 转换对象的类

转载 作者:搜寻专家 更新时间:2023-11-01 04:03:47 26 4
gpt4 key购买 nike

我以前的 OOP 经验是使用 Objective-C(动态类型),但是,我现在正在学习 Java。我想遍历对象的 ArrayList 并对它们执行某种方法。 ArrayList 中的每个对象都属于同一类。在 Objective-C 中,我会在每次迭代中检查对象是否是正确的类,然后运行该方法,但这种技术在 Java 中是不可能的:

for (Object apple : apples) {
if (apple.getClass() == Apple.class) {
apple.doSomething(); //Generates error: cannot find symbol
}
}

我如何“告诉”编译器 ArrayList 中的对象属于哪个类?

最佳答案

在 Java 5 及更高版本中,集合类型被泛化了。所以你会有这个:

ArrayList<Apple> a = getAppleList(); // list initializer

for (Apple apple : a) {
apple.doSomething();
}

拥有 ObjectArrayList 通常不是好的做法,除非您特别需要您的 ArrayList 能够容纳不同类型的对象。通常情况并非如此,您可以使用异构集合来提高类型安全性。

关于java - 转换对象的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2196515/

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