groovy Groovy Truth (true-ness)


Groovy evaluates conditions in if, while and for statements the same way as Java does for standard Java conditions : in Java you must provide a boolean expression (an expression that evaluates to a boolean) and the result is the result of the evaluation.

In Groovy , the result is the same as in Java for thoses conditions (no examples provided, this is standard Java).

The other truthfulness evaluation mechanism shown by examples can be summarized as:

  • numbers: a zero value evaluates to false, non zero to true.
  • objects: a null object reference evaluates to false, a non null reference to true.
  • Character : a character with a zero value evaluates to false, true otherwise.
  • String : a string evaluates to true if not null and not empty, false if null or empty (applies to GStrings and CharSequences too).
  • Collections and Maps (including subclasses List, Map, Set, HashSet ...) : also takes into account the size, evaluates to true if the collection is not null and not empty, false if null or empty.
  • Enumerations and Iterators evaluates to true if not null and they are some more elements (groovy evaluates hasMoreElements or hasNext on the object), false if null or no more elements.
  • Matcher : a matcher evaluates to true if there is at least one match, false if not match is found.
  • Closure : a closure evaluates to the evaluation of the result returned by the closure.

The asBoolean method can be overriden in a user defined class to provide custom boolean evaluation.