Javaはジェネリックをネストできますか?以下は、Eclipseでエラーが発生する原因です。
ArrayList<ArrayList<Integer>> numSetSet = ArrayList<ArrayList<Integer>>();
エラーは次のとおりです。
Syntax error on token "(", Expression expected after this token
Javaはジェネリックをネストできますか?以下は、Eclipseでエラーが発生する原因です。
ArrayList<ArrayList<Integer>> numSetSet = ArrayList<ArrayList<Integer>>();
エラーは次のとおりです。
Syntax error on token "(", Expression expected after this token
あなたは言葉を忘れましたnew
。
それは次のようになります。
ArrayList<ArrayList<Integer>> numSetSet = new ArrayList<ArrayList<Integer>>();
またはさらに良い:
List<List<Integer>> numListList = new ArrayList<List<Integer>>();
グーグル経由でこの質問に答える人のために、はいジェネリックはネストすることができます。そして、他の答えはそうすることの良い例です。
そして、ここに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/
以下のコードのように「new」キーワードを忘れました
。ArrayList<ArrayList<Integer>> numSetSet = new ArrayList <ArrayList <Integer >>();
Java 5(J2SE 5.0 / JDK 1.5)の新機能と例に示すように、ネストされたジェネリックのリストとともにマップを使用することもできます。