メソッドが静的である場合にのみジェネリックメソッドを使用するのだろうか?非静的の場合、ジェネリッククラスを定義し、ジェネリックメソッドである必要はありません。あれは正しいですか ?
例えば、
public class Example<E>{
//this is suffice with no compiler error
public void doSomething(E [] arr){
for(E item : arr){
System.out.println(item);
}
}
//this wouldn't be wrong, but is it necessary ?
public <E> doSomething(E [] arr){
for(E item : arr){
System.out.println(item);
}
}
}
一方、コンパイラは、静的な場合、型パラメータを追加してジェネリックメソッドにするように強制します。
public static <E> doSomething(E [] arr){
}
私が正しいかどうかはわかりません。