我以前的 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();
}
拥有 Object
的 ArrayList
通常不是好的做法,除非您特别需要您的 ArrayList
能够容纳不同类型的对象
。通常情况并非如此,您可以使用异构集合来提高类型安全性。
关于java - 转换对象的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2196515/