我对 processing.org 和 Java 很陌生。我试图将对象存储在 HashMap 中,然后遍历 HashMap 的值,调用存储对象的方法。为此,我假设我需要将迭代器向下转换为我的类的类型,但这会引发 ClassCastException(“java.util.HashMap$ValueIterator 无法转换为 sketch_oct27a$MyClass”)。下面的简化代码演示了这种行为:
import java.util.*;
void setup() {
HashMap m = new HashMap();
m.put("First", new MyClass());
m.put("Second", new MyClass());
m.put("Third", new MyClass());
Iterator iter = m.values().iterator();
while (iter.hasNext()) {
((MyClass)iter).SaySomething(); // Throws ClassCastException
iter.next();
}
}
class MyClass {
void SaySomething() {
println("Something");
}
}
如何通过迭代器调用 SaySomething() 方法?