Я хотел бы выполнить операцию с двумя универсальными аргументами одного и того же типа, которые расширяют 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;
}
почему?