我有兴趣听到您的反馈。我最近看到了一些以下列方式实现的 Java 代码:
Object1 SomeMethod(String key) {
Object1 object1 = null;
List<Object1> objectList = getAllRecordsWithKeyFromDatabase(key);
if (!objectList.isEmpty()) {
object1 = objectList.get(0);
}
return object1;
}
void AnotherMethod() {
...
Object1 object1 = SomeMethod(key);
if (object1 == null) {
// throw exception
}
// continue working
}
每当在没有上下文的情况下返回 null 时,我总是很担心。我希望 SomeMethod 的响应更明确,并正在考虑对其进行重构。从 SomeMethod 抛出异常可以提供一种方法来做到这一点。它将在上下文中发生并发生在故障点。
我想知道 SomeMethod 是否有另一种方式可以通知 AnotherMethod '在数据库中没有找到任何东西',而不是假设 null 总是等于'未找到'。我认为可以使用 NullObject,但我不清楚如果找不到数据,AnotherMethod 应该如何避免“继续工作”。
你将如何重构代码?