2

Javaはジェネリックをネストできますか?以下は、Eclipseでエラーが発生する原因です。

ArrayList<ArrayList<Integer>> numSetSet = ArrayList<ArrayList<Integer>>();

エラーは次のとおりです。

Syntax error on token "(", Expression expected after this token

4

5 に答える 5

22

あなたは言葉を忘れましたnew

于 2009-11-04T03:18:55.853 に答える
7

それは次のようになります。

ArrayList<ArrayList<Integer>> numSetSet = new ArrayList<ArrayList<Integer>>();

またはさらに良い:

List<List<Integer>> numListList = new ArrayList<List<Integer>>();
于 2009-11-04T03:19:57.793 に答える
1

グーグル経由でこの質問に答える人のために、はいジェネリックはネストすることができます。そして、他の答えはそうすることの良い例です。

于 2009-11-04T03:56:24.880 に答える
1

そして、ここにJavaテンプレートプログラミングについての少しトリッキーなテクニックがあります。これまでにJavaでこれを使用した人がどれほどいるのか疑問です。
これはキャストを回避する方法です。

public static <T> T doSomething(String... args) 

これは、ワイルドカードを使用して引数の型を制限する方法です。

public void draw(List<? extends Shape> shape) {  
    // rest of the code is the same  
}  

SUNのWebサイトでさらに多くのサンプルを入手できます:http:
//java.sun.com/developer/technicalArticles/J2SE/generics/

于 2009-11-04T04:16:58.997 に答える
1

以下のコードのように「new」キーワードを忘れました

。ArrayList<ArrayList<Integer>> numSetSet = new ArrayList <ArrayList <Integer >>();

Java 5(J2SE 5.0 / JDK 1.5)の新機能と例に示すように、ネストされたジェネリックのリストとともにマップを使用することもできます。

于 2013-04-07T12:48:41.543 に答える