Итак, я использую API, который в некоторых отношениях немного недружелюбен. По сути, этот API создает ресурс, который можно получить позже. Этот ресурс может существовать, а может и не существовать, когда мы пойдем за ним позже.
Чтобы получить ранее созданный ресурс, вы должны использовать guid результата, например, так:
String resultKey = "12345";
PersistedResult r = mFactory.getPersistedResult(resultKey);
Теперь хитрость заключается в том, что getPersistedResult
НЕ выдает исключение при вызове с недопустимым guid ... PersistedResult
является отложенным загрузчиком и завершится ошибкой только при вызове одного из его методов (вызывая объект загрузить себя).
Итак, чтобы попытаться определить, является ли ресурс действительным, я делаю следующее:
PersistedResult r = null;
if (!StringUtils.isEmpty(resultKey)) {
try {
r = mFactory.getPersistedResult(resultKey);
r.getResultCount(); // Triggers exception if result key was invalid.
} catch (Exception e) {
// handle exception
}
}
Может ли мой вызов на getResultCount
рискнуть быть оптимизированным, потому что я не использую значение?
Вызов любого метода на PersistedResult
отправляется во внешнюю базу данных, на всякий случай, если это имеет значение.
Спасибо