所以,我使用的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上的任何方法都会转到外部数据库,以防万一.
谢谢