V jednom z předchozích příspěvků jsem se věnoval třídě Optional z knihovny Guava. Nezmínil jsem ale užitečnou metodu orNull(). Tato metoda buď vrátí referenci na objekt v případě, že isPresent() je true, nebo null. Může se to hodit třeba v případě, kdy ve svém kódu používáte třídu Optional, ale jiné metody požadují objekt, nebo null.
Optional str1 = Optional.of("world"); Optional str2 = Optional.absent(); System.out.println(str1.orNull()); System.out.println(str2.orNull());
Výsledek.
world null
V následujícím kódu si všimněte metod getString01() a getString02(). Obě dělají to samé, jen getString02() je mnohem kratší a přehlednějsí.
public static void main(String[] args) { Optional str1 = Optional.of("world"); Optional str2 = Optional.absent(); System.out.println(getString01(str1)); System.out.println(getString01(str2)); System.out.println(getString02(str1)); System.out.println(getString02(str2)); } private static String getString01(Optional str) { if (str.isPresent()) { return str.get(); } else { return null; } } private static String getString02(Optional str) { return str.orNull(); }