On Thu, May 11, 2017 at 9:32 AM, Matt Benson <gudnabr...@gmail.com> wrote:
> Looks like we're all in violent agreement then. > Committed to git master for ImmutablePair and ImmutableTriple. Gary > > On May 11, 2017 11:19 AM, "Matt Sicker" <boa...@gmail.com> wrote: > > > I meant this: > > > > @SuppressWarnings("unchecked") > > public static <L, R> ImmutablePair<L, R> nullPair() { > > return (ImmutablePair<L, R>) NULL; > > } > > > > On 11 May 2017 at 11:17, Gary Gregory <garydgreg...@gmail.com> wrote: > > > >> On Thu, May 11, 2017 at 5:35 AM, Matt Benson <gudnabr...@gmail.com> > >> wrote: > >> > >> > On May 11, 2017 1:03 AM, "Gary Gregory" <garydgreg...@gmail.com> > wrote: > >> > > >> > On Wed, May 10, 2017 at 10:58 PM, Matt Sicker <boa...@gmail.com> > wrote: > >> > > >> > > Matching the of() static factories, how about ImmutablePair.ofNull() > >> > > > >> > > >> > I like it but at the same time it feels to me like I am getting a NEW > >> > object like ImmutablePair.of(x, y) give me a new object. Might just be > >> me > >> > ;-) > >> > > >> > > >> > You provide the methods so that people can get an instance > parameterized > >> > for their compilation needs. In reality you can return the same empty, > >> > immutable instance. > >> > > >> > >> Yes, of course: > >> > >> /** > >> * An immutable pair of nulls. > >> */ > >> // This is not defined with generics to avoid warnings in call > sites. > >> @SuppressWarnings("rawtypes") > >> private static final ImmutablePair NULL = ImmutablePair.of(null, > >> null); > >> > >> @SuppressWarnings("rawtypes") > >> // This is not defined with generics to avoid warnings in call > sites. > >> public static ImmutablePair nullPair() { > >> return NULL; > >> } > >> > >> Gary > >> > >> > >> > >> > > >> > Matt > >> > > >> > > >> > Gary > >> > > >> > > >> > > On 11 May 2017 at 00:03, Gary Gregory <garydgreg...@gmail.com> > wrote: > >> > > > >> > > > On Wed, May 10, 2017 at 9:27 PM, Matt Sicker <boa...@gmail.com> > >> wrote: > >> > > > > >> > > > > Wouldn't it make sense to expose typed methods like in > >> > > > > Collections.emptyList() et al.? > >> > > > > > >> > > > > >> > > > So in this case: > >> > > > > >> > > > ImmutablePair.nullPair() > >> > > > > >> > > > Gary > >> > > > > >> > > > > > >> > > > > On 10 May 2017 at 22:10, Javen O'Neal <one...@apache.org> > wrote: > >> > > > > > >> > > > > > +1 > >> > > > > > > >> > > > > > The of method should check if all elements are null, and if so > >> to > >> > > > return > >> > > > > > the NULL singleton. This would reduce the number of objects > >> created > >> > > and > >> > > > > > garbage collected. > >> > > > > > > >> > > > > > So long as ImmutablePair and ImmutableTriple classes are final > >> (not > >> > > > > > subclassable), then identity checking could be used in place > of > >> > > > equality > >> > > > > > checking when comparing against a null tuple. This would be > >> > > marginally > >> > > > > > faster. > >> > > > > > > >> > > > > > Any preference of being explicit (redundant) here? > >> > > > > > ImmutablePair.NULL_PAIR and ImmutableTriple.NULL_TRIPLE > >> > > > > > > >> > > > > > On May 10, 2017 7:35 PM, "Gary Gregory" < > garydgreg...@gmail.com > >> > > >> > > > wrote: > >> > > > > > > >> > > > > > Hi All, > >> > > > > > > >> > > > > > Any thoughts for or against adding the following to > >> ImmutablePair: > >> > > > > > > >> > > > > > > >> > > > > > /** > >> > > > > > * An immutable pair of nulls. > >> > > > > > */ > >> > > > > > // This is not defined with generics to avoid warnings in > >> call > >> > > > sites. > >> > > > > > @SuppressWarnings("rawtypes") > >> > > > > > public static final ImmutablePair NULL = > >> ImmutablePair.of(null, > >> > > > > null); > >> > > > > > > >> > > > > > Same for ImmutableTriple. > >> > > > > > > >> > > > > > ? > >> > > > > > > >> > > > > > Thank you, > >> > > > > > Gary > >> > > > > > > >> > > > > > -- > >> > > > > > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > >> > > > > > Java Persistence with Hibernate, Second Edition > >> > > > > > <https://www.amazon.com/gp/product/1617290459/ref=as_li_ > >> > > > > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459& > >> > > > > > linkCode=as2&tag=garygregory-20&linkId= > >> > > cadb800f39946ec62ea2b1af9fe6a2 > >> > > > b8> > >> > > > > > > >> > > > > > <http:////ir-na.amazon-adsystem.com/e/ir?t= > >> > > garygregory-20&l=am2&o=1&a= > >> > > > > > 1617290459> > >> > > > > > JUnit in Action, Second Edition > >> > > > > > <https://www.amazon.com/gp/product/1935182021/ref=as_li_ > >> > > > > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021& > >> > > > > > linkCode=as2&tag=garygregory-20&linkId= > >> > > 31ecd1f6b6d1eaf8886ac902a24de4 > >> > > > > > 18%22> > >> > > > > > > >> > > > > > <http:////ir-na.amazon-adsystem.com/e/ir?t= > >> > > garygregory-20&l=am2&o=1&a= > >> > > > > > 1935182021> > >> > > > > > Spring Batch in Action > >> > > > > > <https://www.amazon.com/gp/product/1935182951/ref=as_li_ > >> > > > > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951& > >> > > > > > linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B% > >> > > > > > 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> > >> > > > > > <http:////ir-na.amazon-adsystem.com/e/ir?t= > >> > > garygregory-20&l=am2&o=1&a= > >> > > > > > 1935182951> > >> > > > > > Blog: http://garygregory.wordpress.com > >> > > > > > Home: http://garygregory.com/ > >> > > > > > Tweet! http://twitter.com/GaryGregory > >> > > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > -- > >> > > > > Matt Sicker <boa...@gmail.com> > >> > > > > > >> > > > > >> > > > > >> > > > > >> > > > -- > >> > > > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > >> > > > Java Persistence with Hibernate, Second Edition > >> > > > <https://www.amazon.com/gp/product/1617290459/ref=as_li_ > >> > > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459& > >> > > > linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b > >> 1af9fe6a2 > >> > b8> > >> > > > > >> > > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= > >> am2&o=1&a= > >> > > > 1617290459> > >> > > > JUnit in Action, Second Edition > >> > > > <https://www.amazon.com/gp/product/1935182021/ref=as_li_ > >> > > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021& > >> > > > linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac > >> 902a24de4 > >> > > 18%22 > >> > > > > > >> > > > > >> > > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= > >> am2&o=1&a= > >> > > > 1935182021> > >> > > > Spring Batch in Action > >> > > > <https://www.amazon.com/gp/product/1935182951/ref=as_li_ > >> > > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951& > >> > > > linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B% > >> > > > 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> > >> > > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= > >> am2&o=1&a= > >> > > > 1935182951> > >> > > > Blog: http://garygregory.wordpress.com > >> > > > Home: http://garygregory.com/ > >> > > > Tweet! http://twitter.com/GaryGregory > >> > > > > >> > > > >> > > > >> > > > >> > > -- > >> > > Matt Sicker <boa...@gmail.com> > >> > > > >> > > >> > > >> > > >> > -- > >> > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > >> > Java Persistence with Hibernate, Second Edition > >> > <https://www.amazon.com/gp/product/1617290459/ref=as_li_ > >> > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459& > >> > linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b > >> 1af9fe6a2b8> > >> > > >> > <http:////ir-na.amazon-adsystem.com/e/ir?t= > garygregory-20&l=am2&o=1&a= > >> > 1617290459> > >> > JUnit in Action, Second Edition > >> > <https://www.amazon.com/gp/product/1935182021/ref=as_li_ > >> > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021& > >> > linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de4 > >> > 18%22> > >> > > >> > <http:////ir-na.amazon-adsystem.com/e/ir?t= > garygregory-20&l=am2&o=1&a= > >> > 1935182021> > >> > Spring Batch in Action > >> > <https://www.amazon.com/gp/product/1935182951/ref=as_li_ > >> > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951& > >> > linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B% > >> > 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> > >> > <http:////ir-na.amazon-adsystem.com/e/ir?t= > garygregory-20&l=am2&o=1&a= > >> > 1935182951> > >> > Blog: http://garygregory.wordpress.com > >> > Home: http://garygregory.com/ > >> > Tweet! http://twitter.com/GaryGregory > >> > > >> > >> > >> > >> -- > >> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > >> Java Persistence with Hibernate, Second Edition > >> <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl? > >> ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&link > >> Code=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> > >> > >> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= > >> am2&o=1&a=1617290459> > >> JUnit in Action, Second Edition > >> <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl? > >> ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&link > >> Code=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22> > >> > >> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= > >> am2&o=1&a=1935182021> > >> Spring Batch in Action > >> <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl? > >> ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&link > >> Code=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Bli > >> nk_id%7D%7D%22%3ESpring+Batch+in+Action> > >> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= > >> am2&o=1&a=1935182951> > >> Blog: http://garygregory.wordpress.com > >> Home: http://garygregory.com/ > >> Tweet! http://twitter.com/GaryGregory > >> > > > > > > > > -- > > Matt Sicker <boa...@gmail.com> > > > -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459> JUnit in Action, Second Edition <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021> Spring Batch in Action <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951> Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory