Looks like we're all in violent agreement then. 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> >