Помогите разобраться с передаваемым типом в параметризированный FunctionalInterface

Решаю, вроде, не сложную задачу:
Создайте функциональный интерфейс NumberGenerator, параметризованный таким образом, что принимает только наследников класса Number, имеющий метод boolean cond(T arg). Создайте в методе public static NumberGenerator<? super Number> getGenerator() с помощью лямбда выражения реализацию NumberGenerator, которая возвращает true, если число в int эквиваленте больше 0.
Сделал в IDe следующие решение:

@ 
    interface NumberGenerator<T extends Number> {
        boolean cond(T arg);
    }

public static NumberGenerator<? super Number> getGenerator() {

    NumberGenerator<  > ref = (n) -> {
            return n > 0;
    };
}

С Integer всё работает, с остальными типами проблема, как сделать "универсальным"? В методе getGenerator() какой тип нужно передавать в NumberGenerator<***>


Ответы (1 шт):

Автор решения: Serodv
public static NumberGenerator<? super Number> getGenerator() {
        return n -> n.intValue() > 0;
    }
→ Ссылка