как использовать универсальные шаблоны в Java с операторами языка и универсальным классом, расширяющим Number

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

почему?

5
задан Heisenbug 6 July 2011 в 18:25
поделиться