この単純なクラスを考えると:
import java.util.Collection;
public class GenericTest<T> {
public Collection<String> getKeys() {
return null;
}
public void copy(GenericTest a_from) {
for (String x : a_from.getKeys()) {
}
}
}
次のコンパイル エラーが発生しますが、理由がわかりません。
error: incompatible types
for (String x : a_from.getKeys()) {
required: String
found: Object
copy() メソッドのパラメーターを GenericTest<T> に変更すると、エラーはなくなりますが、それは私が望むものではありません。copy() メソッドは、GenericTest<T> だけでなく、あらゆるタイプの GenericTest で有効です。