Default method survey results

Jose A. Illescas jantonio.illescas at rbc.com
Mon Aug 13 07:09:55 PDT 2012


Gregg,

   Compiler can add "default" keyword for every method (on interface) 
with implementation (delimiteded with "{...}" instead of "default")

   Demarcations on developer hands are ugly, (I think) must be resolved 
by compiler...


On 13/08/2012 15:52, Gregg Wonderly wrote:
> In this day and age of the Java language, reusing existing keywords, 
> trying to shoehorn them into use for a new purpose, can feel a little 
> clumsy.  Annotations can provide a much better mechanism in many 
> cases, simply because the right nomenclature is helpful.
>
> However, annotations also have a very specific usage scenario with 
> tooling and moment-of-use issues.  For me, this means that you can't 
> use annotations in places that annotations wouldn't work with the 
> normal annotation tooling.  You certainly don't want to have to have a 
> special class of annotation that further confuses the use of 
> annotations in other cases.
>
> The use of "default" isn't awesome, but it does provide a usable 
> demarcation which the compiler and run-time class loading can use to 
> make the right decision for how to build the v-tables to dispatch the 
> default method should it be involved some how.
>
> Gregg Wonderly
>
> On 8/13/2012 8:35 AM, Jose A. Illescas wrote:
>> On 13/08/2012 15:23, Deepak S Patwardhan wrote:
>>>> -----Original Message-----
>>>> From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev-
>>>> bounces at openjdk.java.net] On Behalf Of Jose A. Illescas
>>>> Sent: 13 August 2012 16:40
>>>> To: Brian Goetz
>>>> Cc: lambda-dev at openjdk.java.net
>>>> Subject: Re: Default method survey results
>>>>
>>>> Brian, Why not add one thirth option (without "default" keyword) to 
>>>> poll?
>>>>
>>>> 1.  void foo() default {
>>>>             System.out.println("foo");
>>>>         }
>>>>
>>>> 2.  default void foo() {
>>>>             System.out.println("foo");
>>>>         }
>>>>
>>>> 3.     void foo() {
>>>>
>>>>             System.out.println("foo");
>>>>         }
>>>>
>>> If we explore going down this path, I think we should also explore 
>>> using an
>>> annotation,
>>>
>>> @java.lang.Default
>>> void foo() {
>>>       System.out.println("foo");
>>> }
>>>
>> Deepak, why proposed annotation?
>>
>>       I would like see an implementation as any other java method
>> (without new keywords, annotations, ...)
>>
>>       Implements a interface method ("default") must be equals to
>> implement another class method (I want "complexity" out of developer
>> hands, into compiler...)
>>
>>
>>
>>> I would be interested in knowing if using such an annotation has any
>>> demerits.
>>>
>>> Regards,
>>> Deepak S Patwardhan.
>>>
>>>>
>>>> On 12/08/2012 00:30, Brian Goetz wrote:
>>>>> Poll is closed, and results can be seen here:
>>>>>
>>>>>
>>>>>
>>>> https://www.surveymonkey.com/sr.aspx?sm=xPw4AxfWK2TTQLQtbIpQCg0l
>>>> bkw_2fuYDiZnrBDB_2bPyd4_3d
>>>>>
>>>
>>
>>
>
>



More information about the lambda-dev mailing list