Guava Optional.orNull()

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();
}

Napsat komentář