Я хотел бы выполнить операцию над двумя обобщенными аргументами одного и того же типа, расширяющими Number.
Возможно ли это?
Я всегда вызывал методы для общих аргументов, но, похоже, есть проблема с использованием операторов (Оператор + не определен для типа (ов) аргументов T, T).
public static <T extends Number> T sum(T a, T b){
return a+ b;
}
Что я делаю не так?
EDIT:
Я стараюсь немного улучшить свой вопрос. Я понял, что операторы не определены для типа Number. Это немного грустно, потому что было бы неплохо выполнить такую операцию, не вводя новые интерфейсы, подобные предложению @Victor Sorokin.
Но я все еще не понимаю одну вещь: если операторы не реализованы в классе Number, то, по крайней мере, в классе Double должны быть реализованы, потому что я могу использовать оператор + с double.
Ни одна из этих строк кода не скомпилируется:
public static <T extends Double> T sum(T a, T b){
T c = a +b;
}
почему