commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Gregory <garydgreg...@gmail.com>
Subject Re: StringUtils.isEmpty() family of methods on Objects
Date Sat, 28 Jan 2017 17:08:21 GMT
If you look at the link Matt provided, that handles arrays and collection,
but not Object.toString()

Gary

On Jan 28, 2017 1:13 AM, "Benedikt Ritter" <britter@apache.org> wrote:


> Am 28.01.2017 um 02:53 schrieb Gary Gregory <garydgregory@gmail.com>:
>
> The simplest examples I have on hand are instances of Path and URI which
> can be built with an empty string. I want to know if these are "empty".
For
> the app I am now on for example, a Path or null and "" should be treated
> the same. Same for a URI.

I don’t think it is a good idea to define emptiness based on the return
value of Object.toString(). Consider the following:

isEmpty(null) -> true
isEmpty(„“) -> true
isEmpty(new URI(„“)) -> true

But:

isEmpty(Collections.emptyList()) -> false
isEmpty(new int[0]) -> false

This is because toString() has nothing to do with emptiness. For this
reason I think it would be better to have explicitly typed method overloads
for the use cases you’re thinking about:

boolean isEmpty(Path)
boolean isEmpty(URI)

I’m not sure whether this belong to [lang]. The first looks like it belongs
to [io] while the second would better fit into [net]…

Benedikt

>
> Gary
>
> On Fri, Jan 27, 2017 at 5:37 PM, Matt Sicker <boards@gmail.com> wrote:
>
>> That's an interesting use case, though I've never come across a
toString()
>> implementation that would be affected. Can you go into more detail?
>>
>> On 27 January 2017 at 16:04, Gary Gregory <garydgregory@gmail.com> wrote:
>>
>>> _Like_ that except that our Log4j version does not do the case I want:
>>> object.toString().
>>>
>>> Gary
>>>
>>> On Fri, Jan 27, 2017 at 1:58 PM, Matt Sicker <boards@gmail.com> wrote:
>>>
>>>> Something like this?
>>>>
>>>> https://github.com/apache/logging-log4j2/blob/master/
>>>> log4j-core/src/main/java/org/apache/logging/log4j/core/
>>>> util/Assert.java#L43
>>>>
>>>> On 27 January 2017 at 15:54, Gary Gregory <garydgregory@gmail.com>
>>> wrote:
>>>>
>>>>> Hi All,
>>>>>
>>>>> There are certain kinds of objects, _descriptor_ kind of objects that
>>>> would
>>>>> benefit from isEmpty semantics. These kind of objects can describe
>>>> complex
>>>>> command line arguments and other kind of configuration objects.
>>>>>
>>>>> I'd like to add with this pseudo code:
>>>>>
>>>>> boolean isEmpty(Object) {
>>>>>  return object == null ? true : isEmpty(object.toString());
>>>>> }
>>>>>
>>>>> Thoughts?
>>>>>
>>>>> Same idea of isBlank(), isNotEmpty() and so on.
>>>>>
>>>>> 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 <boards@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 <boards@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&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


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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message