that sb:
final protected Eye getEye(){return eye;}
jweekend wrote:
>
> Probably right.
>
> In the example below, some may argue that the javadoc (here aimed at
> sub-classers) on the parent class' constructor could say (as loudly as
> possible, but probably never quite loudly enough) that doStuff() is called
> before all state is fully initialised (in this case, eye is still null)
> ie sub-classers over-riding doStuff() must be aware that getEye() will
> return null during initialisation (construction) if called in the
> over-riding doStuff() implementation. However, in java, sub-classers can't
> be forced to pay any attention to this.
>
> I agree that this variant of the "template method pattern" (for java
> constructors) is at best dangerous: sub-classers are almost invited to try
> to do stuff that their state may not yet be initialised for;
> eg: if the over-ridden method (which is the implementation that will
> actually be run by the super-class' constructor - as in polymorphism)
> tries to use inherited state.
>
> Here's an example for anyone who is still wondering what all the fuss is
> about:
>
> public class Parent{
> private Eye eye;
> public Parent{
> doStuff();
> eye = new Eye("black");
> }
> protected void doStuff(){ // consider marking this final
> // do some stuff
> }
> final protected void getEye(){return eye;}
> }
>
> class Child extends Parent{
> // for illustration; explicitly declared (and explicitly calls super()
> )
> public Child(){
> super(); // will throw an NPE (in doStuff() ); eye is not
> initialised yet
> }
> public void doStuff(){
> super.doStuff(); // nice try, but doesn't help here
> getEye().getColour(); // getEye() will return null when called by
> Parent's constructor
> }
> }
>
> Regards - Cemal
> http://jWeekend.co.uk jWeekend.co.uk
>
>
>
> igor.vaynberg wrote:
>>
>> On 11/3/07, Al Maw <[EMAIL PROTECTED]> wrote:
>>> There's nothing to stop you making your constructor call methods to
>>> initialise things that people can then override.
>>
>> erm. really? while there is nothing stopping you, you clearly shouldnt...
>>
>> -igor
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/Jira-issue-moved-to-the-list%3A-constructors-and-init-of-components-tf4743674.html#a13569202
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]