JDK 8 code review request for 8005042 Add Method.isDefault to core reflection
Joe Darcy
joe.darcy at oracle.com
Wed Dec 19 00:16:19 UTC 2012
On 12/18/2012 04:12 PM, David Holmes wrote:
> On 19/12/2012 8:40 AM, Louis Wasserman wrote:
>> It's not 100% obvious to me whether this refers to a default
>> implementation
>> in an interface, a class which inherits that default implementation and
>> does not override it, or both. Is that worth clarifying in the doc,
>> rather
>> than forcing readers to check the JLS citation?
>
> The issue is where you obtained this Method reference from:
>
> - from the Interface? then it is a default method
> - from a class implementing the interface but not redefining the
> method? then it is a default method
Actually, that is *now* how HotSpot represents this case in core
reflection at the moment. HotSpot uses a new method object to represent
the default method woven into an implementing class.
The class file and/or runtime representation of default methods may
change before we're done; one reason to get the isDefault methods in
core reflection and javax.lang.model now is to ease exploring alternatives.
-Joe
> - from a class implementing the interface and redefining the method?
> then it is NOT a default method.
>
> David
> -----
>
>>
>>
>> On Tue, Dec 18, 2012 at 2:32 PM, Joe Darcy<joe.darcy at oracle.com> wrote:
>>
>>> Mandy and Jim,
>>>
>>> I'll correct the typos before I push.
>>>
>>> Thanks for the careful review,
>>>
>>> -Joe
>>>
>>>
>>> On 12/18/2012 01:21 PM, Mandy Chung wrote:
>>>
>>>> On 12/18/12 12:43 PM, Joe Darcy wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> Please review these changes to add core reflection support to
>>>>> recognize
>>>>> default methods:
>>>>>
>>>>> 8005042 Add Method.isDefault to core reflection
>>>>> http://cr.openjdk.java.net/~**darcy/8005042.0/<http://cr.openjdk.java.net/~darcy/8005042.0/>
>>>>>
>>>>>
>>>>>
>>>> Looks good to me.
>>>>
>>>> For the test:
>>>> 56 System.err.printf("ERROR: On %s expected isDefualt of
>>>> ''%s''; got
>>>> ''%s''.\n",
>>>> 57 method.toString(), expected, actual);
>>>>
>>>> A typo 'isDefualt' -> 'isDefault'. This uses two single-quote
>>>> characters
>>>> to wrap the expected and actual value - is it intentional? I was
>>>> wondering
>>>> that you meant to use one singe-quote character.
>>>>
>>>> Mandy
>>>>
>>>>
>>>
>>
>>
More information about the core-libs-dev
mailing list