I'd recommend putting a static factory method named "pair" aswell,
with a bit of static import magicks:
final Pair<String,String> values = pair("foo","bar");
instead of
final Pair<String,String> values = Pair.of("foo","bar");
because
final Pair<String,String> values = of("foo","bar"); //doesn't really make
sense...
On Mon, Feb 9, 2009 at 8:30 PM, Reinier Zwitserloot <[email protected]>wrote:
>
> .of instead of .create?
>
> I likey.
>
> On Feb 9, 6:26 pm, [email protected] (Dominic Mitchell) wrote:
> > On Mon, Feb 09, 2009 at 05:27:42AM -0800, Reinier Zwitserloot wrote:
> > > 1. By using a constructor, you don't get type inference. Use a static
> > > method, like so:
> >
> > > public static <P, Q> Pair<P, Q> create(P a, P b) {
> > > return new Pair<P, Q>(a, b);
> > > }
> >
> > > and then make the actual constructor private.
> >
> > Hear, hear! Although, I'd call it "of" rather than create, as that's
> > what the google collections library does. The type inference leads to a
> > really nice API.
> >
> > public Pair<String, Integer> doStuff() {
> > // …
> > return Pair.of("answer", 42);
> > }
> >
> > As to the issues of getters / setters:
> >
> > * Don't have setters, pairs should be immutable.
> > * Do you really need to get at pairs from within JavaBeans? I'd guess
> > probably not. Most of the time, the components of a pair will be
> > extracted within a line or two of the call site.
> >
> > A nice discussion, anyways. I wish my iPod hadn't run out of juice half
> > way through. :)
> >
> > -Dom
> >
>
--
Viktor Klang
Senior Systems Analyst
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "The
Java Posse" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en
-~----------~----~----~----~------~----~------~--~---