Static <T extends Number & Comparable <? super Number >>

I have the following class with one static method:

public class Helper {

    public static <T extends Number & Comparable<? super Number>> Boolean inRange(T value, T minRange, T maxRange) {
        //  equivalent (value >= minRange && value <= maxRange)
        if (value.compareTo(minRange) >= 0 && value.compareTo(maxRange) <= 0)
            return true;
        else
            return false;
    }

}

I am trying to call this method:

Integer value = 2;
Integer min = 3;
Integer max = 8;
Helper.inRange(value, min, max) ;

The Netbeans compiler will show me this error message:

the inRange method in the Helper class cannot be applied to the specified types; required: T, T, T found: java.lang.Integer, java.lang.Integer, java.lang.Integer Reason: the alleged type does not match the declared boundaries (s) inferred: java.lang.Integer (s): java .lang.Number, java.lang.Comparable

Any ideas?

thank.

+5
source share
1 answer

Give it a try <T extends Number & Comparable<T>>.

. Integer Comparable<Integer>, Comparable<? super Number> (Integer Number). Comparable<? extends Number> , Java , ? Number, T compareTo , ?, T.

: newacct, <T extends Number & Comparable<? super T>> ( ), compareTo ?, T , , , , .

+10

All Articles