1

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>同等だと思っていたでしょう。私は何かを見落としていますか?

4

1 に答える 1

2

Generic<Object>はパラメーター化された型Genericですが、 は生の型です。それが警告の理由です。

于 2012-10-02T04:02:08.240 に答える