Есть метод, который ищет объект… а как узнать, что объект не найден? Я придумал только использовать исключение, но они, по аналогии с другими языками, тормозят программу… Есть ли секретный приём?
Код примерно такой…
public SomeObject findObject()
{
//...
if(findResult)
return object;
//...???
}
«тормоза программы» при использовании исключений критичны ну разве в 0,0..001% случаев.
ну и конечно же return null; как выше подсказали вполне работает.
Вообще, исключения придуманы не для того, чтобы передавать информацию о каком-то частном случае штатного завершения метода. Кроме того, они действительно «более тяжёлые». Так что однозначно return null, если только ненахождение значения не является неожиданностью/«аварией»/исключительной ситуацией.
public static final SomeObject NOT_FOUND = new SomeObject (..)
...
return NOT_FOUND
внутри системы ( если метод не вызывается внешним клиентом) бывает позелен пустой объект, который делает ничего, чтобы не плодить проверки на null.
Просто возвращать null это практически обречь себя на NPE.