如何调用泛型类型对象的方法?
下面的代码给了我一个错误:
SceneNode.java:17: cannot find symbol
symbol : method execute() location:
class java.lang.Object
operation.execute();
^ 1 error
法典:
import java.util.LinkedList;
import java.util.Iterator;
public class SceneNode<T>{
T operation;
public SceneNode() {
}
public SceneNode(T operation) {
this.operation = operation;
}
public void setOperation(T operation) {
this.operation = operation;
}
public void doOperation() {
operation.execute();
}
}
这是一个简单的场景图的削减(为了您的可读性)。开始。节点可以是模型、转换、开关等,所以我做了一个名为“类型”的变量,该类型由类变量定义。通过这种方式,我可以传递一个 / / 对象(有一个方法)并像这样传递它:operation
T
Transformation
Model
Switch
execute
SceneNode<Transformation> = new SceneNode<Transformation>(myTransformation);
我很确定为所有各种类型的节点提供一个基类和子类化将是一个更好的主意(我正在尝试泛型,最近才了解它们)。为什么这不起作用?我一定错过了一些关于泛型的基本知识。SceneNode