私はJAVAジェネリックを初めて使用しますが、return型は無効ですが、なぜ型を指定しているのですか。
public static <U> void addBox(U u,List<Box<U>> boxes){
Box<U> box = new Box<U>();
box.setT(u);
boxes.add(box);
}
私はJAVAジェネリックを初めて使用しますが、return型は無効ですが、なぜ型を指定しているのですか。
public static <U> void addBox(U u,List<Box<U>> boxes){
Box<U> box = new Box<U>();
box.setT(u);
boxes.add(box);
}
は<U>
リターンタイプではありません。U
これは、メソッドのパラメーターとメソッド本体で使用されるジェネリッククラスであることを宣言しています。
ジェネリックメソッドとその構文について詳しくは、こちらをご覧ください。
入力パラメータに対して定義されており、戻り型ではありません。クラスAbcのようなクラスレベルではなく、メソッドレベルで定義されているため、ここではこのように宣言されています。
ありがとう
効果的なJavaを読むことをお勧めします。著者のジョシュア・ブロックは、第5章でかなり良いイラストを示しています。