私はこのようなクラスを持っています:
public class SpiralGenerator<E extends Number> implements Iterator<List<E>> {
private void generate(int pos, E... array) {
if (pos == array.length) {
List<E> list = new ArrayList<>();
list.addAll(Arrays.asList(array));
currentResults.add(list);
return;
}
generate(pos + 1, array);
array[pos] = -array[pos];
}
}
ただし、許可しませんarray[pos] = -array[pos]
。Integer
代わりに使用すると正常にE extends Number
動作します。
エラーメッセージ:
bad operand type E for unary operator '-'
where E is a type-variable:
E extends Number declared in class SpiralGenerator
現在のアプローチが機能しないのはなぜですか?どうすれば解決できますか?