So what is having a non-generic runtime class accomplishing for you? Matt
On Tue, Oct 22, 2013 at 2:29 PM, Gary Gregory <garydgreg...@gmail.com>wrote: > > > > Sent via the Samsung Galaxy NoteĀ® 3, an AT&T 4G LTE smartphone > > -------- Original message -------- > From: sebb > Date:10/22/2013 13:37 (GMT-05:00) > To: Commons Developers List > Subject: Re: [lang] ImmutablePair is final > > On 22 October 2013 18:33, Gary Gregory <garydgreg...@gmail.com> wrote: > > On Tue, Oct 22, 2013 at 1:22 PM, Paul Benedict <pbened...@apache.org> > wrote: > > > >> If you can subclass, the class will likely be mutable somehow (accessing > >> protected or package-private data?) -- even introducing new variables > >> exclusive to the subclass. The "final" keyword is used well here. > >> > > > > Here is my use case for which I've cloned ImmutablePair into my own > package > > (yuck): > > Composition (rather than extension) would work better here surely? > > Surely indeed Shirley ;) (Airplane!) > > Right now I am getting hashCode and equals for free with the subclass > hack. > > Gary > > > > public final class ImmutableFooImmutableBarPair extends > > ImmutablePair<ImmutableFoo, ImmutableBar> { > > > > private static final long serialVersionUID = 123L; > > > > public ImmutableFooImmutableBarPair (final ImmutableFoo foo, final > > ImmutableBar bar) { > > super(Validate.notNull(nameMatch), Validate.notNull(article)); > > } > > > > public ImmutableFoo getImmutableFoo() { > > return this.getValue(); > > } > > > > public ImmutableBar getImmutableBar() { > > return this.getKey(); > > } > > ... > > ImmutableFooImmutableBarPair pair = new > ImmutableFooImmutableBarPair(myFoo, > > myBar); > > ... > > pair.getImmutableFoo(); > > ... > > pair.getImmutableBar(); > > > > Gary > > > > > >> > >> On Tue, Oct 22, 2013 at 12:15 PM, sebb <seb...@gmail.com> wrote: > >> > >> > On 22 October 2013 18:10, Gary Gregory <garydgreg...@gmail.com> > wrote: > >> > > Hi All: > >> > > > >> > > Is there any reason we would want to keep ImmutablePair final? > >> > > >> > To stop mutable subclasses from being created? > >> > > >> > BTW, it's unfortunate that the fields are public; they should have > >> > been private (there are public getters). > >> > > >> > > Gary > >> > > > >> > > -- > >> > > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > >> > > Java Persistence with Hibernate, Second Edition< > >> > http://www.manning.com/bauer3/> > >> > > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> > >> > > Spring Batch in Action <http://www.manning.com/templier/> > >> > > Blog: http://garygregory.wordpress.com > >> > > Home: http://garygregory.com/ > >> > > Tweet! http://twitter.com/GaryGregory > >> > > >> > --------------------------------------------------------------------- > >> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >> > For additional commands, e-mail: dev-h...@commons.apache.org > >> > > >> > > >> > >> > >> -- > >> Cheers, > >> Paul > >> > > > > > > > > -- > > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > > Java Persistence with Hibernate, Second Edition< > http://www.manning.com/bauer3/> > > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> > > Spring Batch in Action <http://www.manning.com/templier/> > > Blog: http://garygregory.wordpress.com > > Home: http://garygregory.com/ > > Tweet! http://twitter.com/GaryGregory > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > >