commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rafael Santini" <raf...@santini.eti.br>
Subject Re: ObjectUtils
Date Mon, 08 Jul 2013 17:58:45 GMT
Hi Matt,

I don't have an array of objects. I have some variables that need to be 
checked whether are null or not.

if (obj1 != null && obj2 != null && obj3 != null && obj4 != null)
{
   // Do something...
}

To use ArrayUtils.contations(), I need to code something like:

if (ArrayUtils.contains(new Object[] {obj1, obj2, obj3, obj4}, null) == 
false) {
    // Do something...
}

This example is related to some business code that I'm refactoring. In 
general, I need to check few objects.

I'm worry about readability. So, I think that isNotNull(obj1, obj2, obj3, 
obj4) is more clear and is so readable like String.isNotBlank() that I use a 
lot.

Rafael Santini

-----Mensagem Original----- 
From: Matt Benson
Sent: Monday, July 08, 2013 2:16 PM
To: Commons Developers List
Subject: Re: ObjectUtils

I don't know exactly why this thread is getting split, but I think several
of us are taking the implicit position that we shouldn't necessarily
include a separate utility method for things that can be accomplished with
existing utility methods.  It's arguably best that these (and any?) classes
be kept as lean as possible.  The comparison to StringUtils methods is a
little inept IMO; you are dealing with multiple object references, and
attempting to present them with a varargs API.  The implication, then, is
that arrays, rather than objects, are the relevant concept.  That puts us
into the realm of the ArrayUtils class.  From a semantic standpoint, I
would be concerned by a method e.g. ArrayUtils#isNotNull(Object... array).
"is" is a singular verb and my inclination would be to think of the array
itself as the object of that verb.  Is the array not null?  That check is
of course more easily and efficiently accomplished with `array != null`.
You could then opt to name the method something like
ArrayUtils#containsNoNullElements(Object... array) but then, again, you can
just as clearly, and in fewer characters, use `!ArrayUtils.contains(array,
null)`.  Does that make sense?

Matt


On Mon, Jul 8, 2013 at 12:01 PM, Rafael Santini 
<rafael@santini.eti.br>wrote:

> Hi,
>
> The proposed method is related to objects. As we have
> StringUtils.isBlank(), isNotBlank(), isEmpty() etc., the
> ObjectUtils.isNotNull(Object..**. objs) is intended to check if all
> objects are not null. So, instead of
>
>
> if (obj1 != null && obj2 != null && obj3 != null && obj4 != null)
{
>    // Do something...
> }
>
> we have
>
> if (isNotNull(obj1, obj2, obj3, obj4) {
>    // Do something...
> }
>
> The StringUtils.firstNonNull() returns the first object that is not null
> (equivalent to something that returns true if there is at least one object
> that is not null). The isNotNull() returns true if all objects are not 
> null.
>
> Rafael Santini
>
> -----Mensagem Original----- From: Matt Benson
> Sent: Monday, July 08, 2013 1:20 PM
>
> To: Commons Developers List
> Subject: Re: Lang: ObjectUtils
>
> WRT #firstNonNull, I don't know why I couldn't find it before.  I do now,
> and I agree it would seem to fit better in ArrayUtils.
>
> Matt
>
>
> On Mon, Jul 8, 2013 at 10:04 AM, Jörg Schaible
> <Joerg.Schaible@scalaris.com>**wrote:
>
>  Hi Matt,
>>
>> Matt Benson wrote:
>>
>> > On Mon, Jul 8, 2013 at 8:22 AM, Jörg Schaible
>> > <Joerg.Schaible@scalaris.com>**wrote:
>> >
>> >> Hi Hen,
>> >>
>> >> Henri Yandell wrote:
>> >>
>> >> > I don't see any value having the first two methods - replacing the
>> '=='
>> >> > sign is a bit too far in the 'provide simple methods' direction I
>> think
>> >> :)
>> >> >
>> >> > I think the third method is already in Lang as:
>> >> >
>> >> >     ArrayUtils.contains(array, null);
>> >>
>> >>
>> >> Well, no, this is not, what the method does!
>> >
>> >
>> > Correct, but to be fair, it's simple enough to use this method to
>> > implement
>> > the desired check.  Negate the result.
>> >
>> >
>> >> With Lang we could use now:
>> >>
>> >>     ObjectUtils.firstNotNull(**array) != null
>> >>
>> >
>> > I don't see such a method as this.
>>
>>
>> http://commons.apache.org/**proper/commons-lang/javadocs/**
>> api-release/org/apache/**commons/lang3/ObjectUtils.**html#firstNonNull(T<http://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/ObjectUtils.html#firstNonNull(T>
>> ..
>> .)
>>
>> > If it did exist, it still wouldn't
>> > implement the feature requested (check that no element of the array is
>> > null).  I'm pretty sure !ArrayUtils.contains(array, null) is fine.
>>
>> I've re-read the original code and you're right.
>>
>> - Jörg
>>
>>
>> ------------------------------**------------------------------**---------
>> To unsubscribe, e-mail: 
>> dev-unsubscribe@commons.**apache.org<dev-unsubscribe@commons.apache.org>
>>
>> For additional commands, e-mail: dev-help@commons.apache.org
>>
>>
>>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: 
> dev-unsubscribe@commons.**apache.org<dev-unsubscribe@commons.apache.org>
>
> For additional commands, e-mail: dev-help@commons.apache.org
>
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message