Dec 13, 2022 22:17
В давние времена, ещё до Java 1.8, один руководитель джавового проекта увидел однажды, что в языке Scala для работы со значениями, которые могут быть null, используется Option. И так ему понравилась эта идея, что он написал на Java свою собственную библиотеку c Option, и внедрил на своём проекте, яко полезную. Шли годы, Java обзавелась собственным аналогичным классом, Optional, и теперь в кодбазе примерно в двух третях случаев используется самописный Option, а в оставшейся трети - стандартный Optional. Есть и утилита, которая конвертирует одно в другое.
Но это пол-беды. Хуже то, что в те времена, когда самописный Option в кодбазу широко внедрялся, использовался он примерно так:
Option valueOption = Option.option(nullableValue);
if (valueOption.isDefined()) {
ValueClass value = valueOption.get();
...
} else {
...
}
из-под асфальтоукладчика