) имеет только методы, определенные

иже дает мне ошибку:

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 и создание подклассов для всех различных типов узлов было бы лучшей идеей (я пробовал дженерики, только недавно узнал о них). Почему это не работает? Я должен упустить что-то фундаментальное в дженериках.

Ответы на вопрос(3)

Ваш ответ на вопрос