It is unfortunate that most of ArrayUtils' methods do not support varargs because they were originally created with the array argument first. Semantically I think the concept of ArrayUtils#contains(Object, Object... array) is more sensible anyway. There is actually no technical reason why this method and probably some others in ArrayUtils couldn't support both syntaxes (probably deprecating the old one), but that's probably a different discussion.
If you don't have an existing array, you can use ArrayUtils#toArray() i.e. !ArrayUtils.contains(ArrayUtils.toArray(foo, bar, baz), null); A little long, but then there are always static imports. However, it sounds like you're trying to do something like validate method parameters. Have you considered, e.g.: Validate.noNullElements(Arrays.asList(foo, bar, baz), "some required argument was null"); ? Matt On Mon, Jul 8, 2013 at 12:58 PM, Rafael Santini <raf...@santini.eti.br>wrote: > 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 <raf...@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.schai...@scalaris.com>****wrote: >> >> Hi Matt, >> >>> >>> Matt Benson wrote: >>> >>> > On Mon, Jul 8, 2013 at 8:22 AM, Jörg Schaible >>> > <joerg.schai...@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/****<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<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.**apac**he.org<http://apache.org> >>> <dev-unsubscribe@**commons.apache.org<dev-unsubscr...@commons.apache.org> >>> > >>> >>> >>> For additional commands, e-mail: dev-h...@commons.apache.org >>> >>> >>> >>> >> ------------------------------****----------------------------** >> --**--------- >> To unsubscribe, e-mail: >> dev-unsubscribe@commons.**apac**he.org<http://apache.org> >> <dev-unsubscribe@**commons.apache.org<dev-unsubscr...@commons.apache.org> >> > >> >> >> For additional commands, e-mail: dev-h...@commons.apache.org >> >> >> > > ------------------------------**------------------------------**--------- > To unsubscribe, e-mail: > dev-unsubscribe@commons.**apache.org<dev-unsubscr...@commons.apache.org> > For additional commands, e-mail: dev-h...@commons.apache.org > >