私はこのコードをできるだけジェネリックなものにしようとしていますが、最後の部分に正しく貼り付けられています。私のコードが呼び出されるところである:この汎用的なJavaについて若干の助けが必要
List<Integer> NewList = map(OriginalList, new IFunction<Integer>(){
public <T extends Number> int execute(T anInt){
return anInt.intValue() + 1;
}
});
、私はメソッドのマップを持っている:
public static <T> List<Integer> map(List<T> c, IFunction<T> f) {
List<Integer> TempList = new ArrayList<Integer>();
for (T o : c){
TempList.add(f.execute(o));
}
return TempList;
}
とインタフェースIFUNCTION:
public interface IFunction<T> {
public <T extends Number> int execute(T o);
}
私のエラーは地図(である)どこにTempList.add(f.execute(o));と述べています。 TempListをT型に宣言しようとしていて、T型でインクリメントした数値を返すexecuteメソッドを呼び出そうとしています。
コードの一部を修正するたびに、別の部分が破損したようです。そうでなければf.execute()
がタイプと文句を言うだろう
public static <T extends Number> List<Integer> map(List<T> c, IFunction<T> f) {
...
:理想的にはすべてのパラメータは、ジェネリックだろうと私はあなたがmap()
方法であなたのパラメータを制約する必要が
スタックトレースを追加できますか? – adrianboimvaser
はこのリストではありません。 TempList = new ArrayList (); Tにいる? –