任意のジェネリック型のコレクションがあるとします ( Collection インターフェイスには注目しないでください)。Set、TreeSet、ArrayList、SortedSetなど...
次に、この擬似的な方法に似た方法が必要です(これには欠陥があります):
private static <T,V> T<V> returnPlease(T<V> obj) {
return obj;
}
しかし、「タイプ T にはタイプ パラメータがありません」というメッセージが表示されるようになりました。
つまり、サブジェネリック型にもアクセスしたいのです。
私はより一般的な方法を知っています:
private static <T> T returnPlease(T obj) {
return obj;
}
メソッドが TreeSet のどのタイプにもアクセスできるようにしたいだけです。TreeSet だけでなく、それが使用しているジェネリック バージョン (この場合は String) も含まれます。
私の構文はどのように間違っていますか? これは不可能ですか?
================== より明確にするために編集 ==================
static interface AnInterface<Return, Param1> {
public Return method(Param1 obj1);
}
private static <T,V> AnInterface<V, V> returnPlease(T<V> obj) {
return new AnInterface<V, V>() {
public V method(V v) {
// Do something
return null;
}
};
}
これで少しは理解が深まると思います...