javaoopgenericswildcardraw-types

How to resolve `Raw use of parameterized class 'Comparable'` warning?


Got to implement the method below for an assignment which it's subject is "WildCards", but don't know where to use wildcards in order to resolve the warning.

static <T extends Comparable> T findMax(T ... items)
{
    T max = items[0];
    for (T item : items)
        if (item.compareTo(max) > 0)
            max = item;
    return max;
}

Any ideas ?


Solution

  • Comparable is a generic interface, so to use it safely you must always specify the generic type to use. In your case, something like:

    <T extends Comparable<T>>
    

    is likely what you're looking for. Otherwise, the compiler is unable to help you verify that the types are actually compatible in all scenarii.