É possível escrever um método +1 genérico para tipos de caixa numéricos em Java?

Este não é um dever de casa.

Parte 1

É possível escrever um método genérico, algo como isto:

<T extends Number> T plusOne(T num) {
    return num + 1; // DOESN'T COMPILE! How to fix???
}

Com falta de usar um monte deinstanceof e lança, isso é possível?

Parte 2

Os três métodos a seguir são compilados:

Integer plusOne(Integer num) {
    return num + 1;
}   
Double plusOne(Double num) {
    return num + 1;
}
Long plusOne(Long num) {
    return num + 1;
}

É possível escrever uma versão genérica que ligueT apenasInteger, DoubleouLong?

questionAnswers(7)

yourAnswerToTheQuestion