Возможно, но оператор if
обычно дешевле, чем вызов метода, плюс людям, которые не знают этих API, легче читать.Одним из улучшений, которое вы могли бы рассмотреть, является следующее:
private Optional<Brand> getBrand(Product p ){
//...
//something...
if (condition) { return Optional.ofNullable(new Brand(p)); }
else { return Optional.empty(); }
}
Тогда:
Optional<Brand> brand = getBrand(p);
if (brand.isPresent()) {
Brand b = brand.get();
}
Намного безопаснее при обработке нуля.