1

この単純なクラスを考えると:

    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 で有効です。

4

3 に答える 3