[OpenJDK 2D-Dev] JDK 9 RFR of JDK-8042864 : Fix raw and unchecked warnings in javax.print

Phil Race philip.race at oracle.com
Mon May 19 19:14:15 UTC 2014


On 5/19/2014 11:54 AM, Joe Darcy wrote:
>>
>>
>> http://cr.openjdk.java.net/~darcy/8042864.0/src/share/classes/javax/print/attribute/standard/DialogTypeSelection.java.sdiff.html
>>
>> < 113 public final Class getCategory() {
>>
>> > 113 public final Class<DialogTypeSelection> getCategory() {
>>
>>
>> getCategory() is a super-class method ..
>>
>> So this seems wrong to me and I think|it should look like this ..|
>>
>> http://docs.oracle.com/javase/8/docs/api/javax/print/attribute/Attribute.html
>> |Class 
>> <http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html><? 
>> extends Attribute 
>> <http://docs.oracle.com/javase/8/docs/api/javax/print/attribute/Attribute.html>>| 
>> |getCategory 
>> <http://docs.oracle.com/javase/8/docs/api/javax/print/attribute/Attribute.html#getCategory-->()
>>
>>
>> |
>
> Part of the generics language feature was covariant overrides, that 
> is, when a subtype overrides a methods from a supertype, the return 
> type of the subtype method can be a more-specific type.
>
> That is the case here; DialogTypeSelection is a subtype of "? extends 
> Attribute" so the getCategory method in DialogTypeSelection is a 
> covariant override of the superclass method. Moreover, since the 
> superclass uses the "? extends Attribute" wildcard, the intention is 
> for subclasses to override this method when possible.
>



1. FYI it appears I reviewed the .0 version since the reference to the 
.1 was so far down I didn't see it

2. I hadn't noticed until now that Henry also mentioned the 
getCategory() API ..

3. The 64 (!) other peer subclasses all use Class<? extends Attribute>.
    Yes, it will be a DialogTypeSelection but the primary use case is to 
be a member of a
   collection of Attribute so a more specific  API type isn't very 
useful at all .. and it
  will just stick out like a sore thumb.

-phil.




More information about the 2d-dev mailing list