私は現在、Java をブラッシュアップし、Generics について調べています。それらは私の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);
}
}
私の考えに根本的な欠陥があるとすれば、それは何ですか? そして、私はむしろどのようなアプローチをとるべきですか?