PROPOSAL: Auto-assignment Parameters
Mark Mahieu
markmahieu at googlemail.com
Wed Mar 25 10:44:24 PDT 2009
Oh sure, perfectly possible. I have an earlier prototype of the
proposal which will compile that just fine.
When I said it wasn't so great I meant that inferring the type - in
this context - hinders anyone trying to understand the code, IMO.
Mark
On 25 Mar 2009, at 17:39, james lowden wrote:
>
> Shouldn't it still be possible to infer, as in:
>
> public data class Foo {
>
> private final int must_be_positive;
>
> public Foo (this.must_be_positive) throws SomeException {
> if (must_be_positive < 0)
> throw new SomeException ("It wasn't positive");
> }
>
> }
>
>
> -JL
>
> --- On Wed, 3/25/09, Mark Mahieu <markmahieu at googlemail.com> wrote:
>
>> From: Mark Mahieu <markmahieu at googlemail.com>
>> Subject: Re: PROPOSAL: Auto-assignment Parameters
>> To: jl0235 at yahoo.com
>> Cc: coin-dev at openjdk.java.net
>> Date: Wednesday, March 25, 2009, 12:33 PM
>> Hi James,
>>
>> I looked into inferring the parameter types, and while it
>> does work quite well for 'brain-dead' POJO classes,
>> it was not so great when you actually want to put some real
>> code in the constructor, for example to throw an exception
>> if a parameter value is not valid.
>>
>> The auto-assignment proposal is very much aimed at helping
>> programmers with code they actually have to *write* (and
>> therefore read and maintain), rather than just generate. If
>> it happens to help with the latter as well, that's
>> great.
>>
>> Mark
>>
>>
>> On 25 Mar 2009, at 13:41, james lowden wrote:
>>
>>>
>>> I'd like to see both.
>> Auto-getters/setters/equals/etc. would be really, really
>> nice, but it would also be valuable to have a way of
>> specifying a variety of different constructors to generate,
>> which Mark's proposal would allow for. Example:
>>>
>>> public data class Foo {
>>> private final int x;
>>> private final int y;
>>> private final String foo;
>>>
>>> public Foo (this.x) {}
>>>
>>> public Foo (this.foo, this.y) {}
>>> }
>>>
>>>
>>> (I eliminated the types from the automagical
>> constructors, as they can be inferred by the compiler.)
>
>
>
More information about the coin-dev
mailing list