JDK 9 RFR of JDK-8049820: Fix raw and unchecked lint warnings in sun.management

Joe Darcy joe.darcy at oracle.com
Thu Jul 10 01:35:01 UTC 2014


Hi Mandy,

On 07/09/2014 06:26 PM, Mandy Chung wrote:
>
> On 7/9/2014 6:10 PM, Joe Darcy wrote:
>> Hello,
>>
>> Another batch of lint warnings removal; this time for
>>
>>     8049820: Fix raw and unchecked lint warnings in sun.management
>>     http://cr.openjdk.java.net/~darcy/8049820.0/
>
>  230         @SuppressWarnings("rawtypes")
>  231         final Class enumClass;
>
> Why can't the enumClass field be declared of Class<?> type?
>
> Other than that, looks fine.
> Mandy
>

My first attempt at generifying this class used Class<?> as you suggest. 
The problem occurs in the call to the static method Enum.valueOf which 
has a declaration of

     public static <T extends Enum<T>> T valueOf(Class<T> enumType,
                                                 String name)

The problem here is the recursive "T extends Enum<T>", following the 
recursive F-bound of the java.lang.Enum type itself. Using a wildcard 
for Class<?> doesn't work with this method signature; something like 
Class<? extends Enum> doesn't work either because the more specific 
recursive binding is not captured, so I reluctantly fell back to using a 
raw type.

Thanks,

-Joe



More information about the serviceability-dev mailing list