You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Gary Gregory <ga...@gmail.com> on 2017/05/11 02:35:43 UTC

Pair of nulls

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: garydgregory@gmail.com | ggregory@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

Re: Pair of nulls

Posted by Gary Gregory <ga...@gmail.com>.
On Thu, May 11, 2017 at 9:32 AM, Matt Benson <gu...@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" <bo...@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 <ga...@gmail.com> wrote:
> >
> >> On Thu, May 11, 2017 at 5:35 AM, Matt Benson <gu...@gmail.com>
> >> wrote:
> >>
> >> > On May 11, 2017 1:03 AM, "Gary Gregory" <ga...@gmail.com>
> wrote:
> >> >
> >> > On Wed, May 10, 2017 at 10:58 PM, Matt Sicker <bo...@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 <ga...@gmail.com>
> wrote:
> >> > >
> >> > > > On Wed, May 10, 2017 at 9:27 PM, Matt Sicker <bo...@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 <on...@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" <
> garydgregory@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: garydgregory@gmail.com | ggregory@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 <bo...@gmail.com>
> >> > > > >
> >> > > >
> >> > > >
> >> > > >
> >> > > > --
> >> > > > E-Mail: garydgregory@gmail.com | ggregory@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 <bo...@gmail.com>
> >> > >
> >> >
> >> >
> >> >
> >> > --
> >> > E-Mail: garydgregory@gmail.com | ggregory@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: garydgregory@gmail.com | ggregory@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 <bo...@gmail.com>
> >
>



-- 
E-Mail: garydgregory@gmail.com | ggregory@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

Re: Pair of nulls

Posted by Matt Benson <gu...@gmail.com>.
Looks like we're all in violent agreement then.

On May 11, 2017 11:19 AM, "Matt Sicker" <bo...@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 <ga...@gmail.com> wrote:
>
>> On Thu, May 11, 2017 at 5:35 AM, Matt Benson <gu...@gmail.com>
>> wrote:
>>
>> > On May 11, 2017 1:03 AM, "Gary Gregory" <ga...@gmail.com> wrote:
>> >
>> > On Wed, May 10, 2017 at 10:58 PM, Matt Sicker <bo...@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 <ga...@gmail.com> wrote:
>> > >
>> > > > On Wed, May 10, 2017 at 9:27 PM, Matt Sicker <bo...@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 <on...@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" <garydgregory@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: garydgregory@gmail.com | ggregory@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 <bo...@gmail.com>
>> > > > >
>> > > >
>> > > >
>> > > >
>> > > > --
>> > > > E-Mail: garydgregory@gmail.com | ggregory@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 <bo...@gmail.com>
>> > >
>> >
>> >
>> >
>> > --
>> > E-Mail: garydgregory@gmail.com | ggregory@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: garydgregory@gmail.com | ggregory@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 <bo...@gmail.com>
>

Re: Pair of nulls

Posted by Matt Sicker <bo...@gmail.com>.
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 <ga...@gmail.com> wrote:

> On Thu, May 11, 2017 at 5:35 AM, Matt Benson <gu...@gmail.com> wrote:
>
> > On May 11, 2017 1:03 AM, "Gary Gregory" <ga...@gmail.com> wrote:
> >
> > On Wed, May 10, 2017 at 10:58 PM, Matt Sicker <bo...@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 <ga...@gmail.com> wrote:
> > >
> > > > On Wed, May 10, 2017 at 9:27 PM, Matt Sicker <bo...@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 <on...@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" <ga...@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: garydgregory@gmail.com | ggregory@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 <bo...@gmail.com>
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > E-Mail: garydgregory@gmail.com | ggregory@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 <bo...@gmail.com>
> > >
> >
> >
> >
> > --
> > E-Mail: garydgregory@gmail.com | ggregory@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=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: garydgregory@gmail.com | ggregory@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
>



-- 
Matt Sicker <bo...@gmail.com>

Re: Pair of nulls

Posted by Gary Gregory <ga...@gmail.com>.
On Thu, May 11, 2017 at 5:35 AM, Matt Benson <gu...@gmail.com> wrote:

> On May 11, 2017 1:03 AM, "Gary Gregory" <ga...@gmail.com> wrote:
>
> On Wed, May 10, 2017 at 10:58 PM, Matt Sicker <bo...@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 <ga...@gmail.com> wrote:
> >
> > > On Wed, May 10, 2017 at 9:27 PM, Matt Sicker <bo...@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 <on...@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" <ga...@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: garydgregory@gmail.com | ggregory@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 <bo...@gmail.com>
> > > >
> > >
> > >
> > >
> > > --
> > > E-Mail: garydgregory@gmail.com | ggregory@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 <bo...@gmail.com>
> >
>
>
>
> --
> E-Mail: garydgregory@gmail.com | ggregory@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=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: garydgregory@gmail.com | ggregory@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

Re: Pair of nulls

Posted by Matt Benson <gu...@gmail.com>.
On May 11, 2017 1:03 AM, "Gary Gregory" <ga...@gmail.com> wrote:

On Wed, May 10, 2017 at 10:58 PM, Matt Sicker <bo...@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.

Matt


Gary


> On 11 May 2017 at 00:03, Gary Gregory <ga...@gmail.com> wrote:
>
> > On Wed, May 10, 2017 at 9:27 PM, Matt Sicker <bo...@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 <on...@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" <ga...@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: garydgregory@gmail.com | ggregory@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 <bo...@gmail.com>
> > >
> >
> >
> >
> > --
> > E-Mail: garydgregory@gmail.com | ggregory@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=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 <bo...@gmail.com>
>



--
E-Mail: garydgregory@gmail.com | ggregory@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

Re: Pair of nulls

Posted by Gary Gregory <ga...@gmail.com>.
On Wed, May 10, 2017 at 10:58 PM, Matt Sicker <bo...@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
;-)

Gary


> On 11 May 2017 at 00:03, Gary Gregory <ga...@gmail.com> wrote:
>
> > On Wed, May 10, 2017 at 9:27 PM, Matt Sicker <bo...@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 <on...@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" <ga...@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: garydgregory@gmail.com | ggregory@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 <bo...@gmail.com>
> > >
> >
> >
> >
> > --
> > E-Mail: garydgregory@gmail.com | ggregory@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=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 <bo...@gmail.com>
>



-- 
E-Mail: garydgregory@gmail.com | ggregory@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

Re: Pair of nulls

Posted by Matt Sicker <bo...@gmail.com>.
Matching the of() static factories, how about ImmutablePair.ofNull()

On 11 May 2017 at 00:03, Gary Gregory <ga...@gmail.com> wrote:

> On Wed, May 10, 2017 at 9:27 PM, Matt Sicker <bo...@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 <on...@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" <ga...@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: garydgregory@gmail.com | ggregory@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 <bo...@gmail.com>
> >
>
>
>
> --
> E-Mail: garydgregory@gmail.com | ggregory@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
>



-- 
Matt Sicker <bo...@gmail.com>

Re: Pair of nulls

Posted by Gary Gregory <ga...@gmail.com>.
On Wed, May 10, 2017 at 9:27 PM, Matt Sicker <bo...@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 <on...@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" <ga...@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: garydgregory@gmail.com | ggregory@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=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 <bo...@gmail.com>
>



-- 
E-Mail: garydgregory@gmail.com | ggregory@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

Re: Pair of nulls

Posted by Matt Benson <gu...@gmail.com>.
On May 10, 2017 11:27 PM, "Matt Sicker" <bo...@gmail.com> wrote:

Wouldn't it make sense to expose typed methods like in
Collections.emptyList() et al.?


+1

Matt


On 10 May 2017 at 22:10, Javen O'Neal <on...@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" <ga...@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: garydgregory@gmail.com | ggregory@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=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 <bo...@gmail.com>

Re: Pair of nulls

Posted by Matt Sicker <bo...@gmail.com>.
Wouldn't it make sense to expose typed methods like in
Collections.emptyList() et al.?

On 10 May 2017 at 22:10, Javen O'Neal <on...@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" <ga...@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: garydgregory@gmail.com | ggregory@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=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 <bo...@gmail.com>

Re: Pair of nulls

Posted by Javen O'Neal <on...@apache.org>.
+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" <ga...@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: garydgregory@gmail.com | ggregory@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