我目前正在复习我的 Java 并阅读泛型。由于它们在我的 Java 课程中没有得到广泛的处理,所以我仍然很难理解它,所以在回答时请记住这一点。
首先,我很确定我想要做的事情是不可能的。但是,我想找出我的想法错在哪里,以及我应该如何实现我想要的。
我正在尝试做的是操作一个对象,该对象从另一个不了解实例化类型的类实现通用接口。因此,我有以下类:
public interface CalledInterface<E> {
public E get() { ... }
public set(E e) { ... }
}
public class Called implements CalledInterface<String> {
...
}
现在我想做的是:
public class Caller {
protected CalledInterface<?> c;
public Caller (CalledInterface<?> arg) {
c = arg;
}
public void run(){
// I can do this:
c.set(c.get());
// But I'd want to be able to do something like:
<?> element = c.get();
c.set(element);
}
}
如果有的话,我的想法中的根本缺陷是什么?我应该采取什么方法?