jdk1.7.0_07 をインストールしたところ、ジェネリック raw 型に関する多くの警告が突然殺到しました。(私は何百ものエラーを取得しており、他のおそらく意味のある警告を難読化しています)。
次のマイナーな例を作成しました。(各クラスは独自のファイルにあります。)
public interface Generic<T> {
public T get( );
}
public class Test {
public Test safeAsHell( Generic thing, int number ) {
return new Test( );
}
public void safeAsHell( Generic thing ) { }
}
これをコンパイルしようとすると (javac -Xlint)、次の警告が表示されます。
Test.java:3: warning: [rawtypes] found raw type: Generic
public Test safeAsHell( Generic thing, int number ) {
^
missing type arguments for generic class Generic<T>
where T is a type-variable:
T extends Object declared in interface Generic
Test.java:7: warning: [rawtypes] found raw type: Generic
public void safeAsHell( Generic thing ) { }
^
missing type arguments for generic class Generic<T>
where T is a type-variable:
T extends Object declared in interface Generic
2 warnings
Object
ジェネリック型パラメーター ( ) として追加するとGeneric<Object> thing
、問題が解決します。Generic
私はタイプとGeneric<Object>
同等だと思っていたでしょう。私は何かを見落としていますか?