是否可以使用可选选项重写以下内容?在我看来,当情况需要抛出异常时,使用可选可能不是一个好主意?
Item item = service.get(id);
if (item == null) {
throw new ItemNotFoundException();
}
item.setValue(false);
itemDao.update(item);
尝试1:
Optional.ofNullable(service.get(id))
.ifPresent(item -> {
item.setValue(false);
itemDao.update(item);
}); // cannot throw exception inside the consumer
尝试2:
Optional.ofNullable(service.get(id))
.map(item -> {
item.setValue(false);
itemDao.update(item);
})
.orElseThrow(new ItemNotFoundException()); //can throw exception here but the usage of map is not correct
你应该归还地图上的物品。
Optional.ofNullable(service.get(id))
.map(item -> {
item.setValue(false);
itemDao.update(item);
return item;
}).orElseThrow(ItemNotFoundException::new);
正如前面的回答中所提到的,服务方法应该返回可选的。如果您绝对希望使用可选的
,但维修方法没有改变,请按以下步骤操作:
Item item = Optional.ofNullable(service.get(id)).orElseThrow(ItemNotFoundException::new);
item.setValue(false);
itemDao.update(item);
在许多地方,我得到了几个已检查的异常,如IOException、ParseException、JSoneException等。我必须做出两个选择之一- > 通过在方法签名的末尾添加抛出来抛出相同的异常。 将检查的异常包装在RuntimeException(或一些自定义实现)中,然后抛出它,以便调用者不必在任何地方添加throws子句并检查异常。 在第一种情况下,我将不得不到处抛出,但我的客户可以通
问题内容: 所以我正在与Optionals一起工作,并且遇到了一种奇怪的行为。我想知道这是否真的是意向性的“功能”或其他…奇特的… 这是给定的示例:我有一个带有Optional的方法,在其中我要评估另一个Optional的方法。如果其他Optional不存在,我将引发IllegalArgumentException: 现在,如果the 为空的Optional,即使存在,它也会引发IllegalAr
我们的一些代码在执行过程中会抛出不同的异常。我想将异常替换为;但optional只能通知用户该值不存在。我需要更多关于执行期间发生的各种问题的详细信息。我需要这些详细信息,主要用于错误消息和获取正确的错误代码。 在这种情况下,使用 的预期方式是什么?
我用6.5.0版创建了一个drools项目。决赛进行得很顺利。但当我创建一个maven项目时,它的抛出错误 这是我在POM文件中的依赖项 这是密码 getKieClasspathContainer正在抛出错误。 谷歌搜索了这个错误,发现添加Xstream依赖项可以解决这个问题,但解决不了。使用Java 7和tomcat 7。我需要向POM添加任何其他依赖项吗?有人知道吗?
我正在使用selenium IDE,尝试在下拉菜单中选择选项时收到错误 错误 元素名称=恶化[]未找到556[股份]。 这是有问题的命令吗 这是源代码
Swift 4还引入了Optionals类型,它处理缺少值。 Optionals说“有一个值,它等于x”或“根本没有值”。 一个Optional本身就是一种类型,实际上是Swift 4的新超级动力枚举之一。 它有两个可能的值, None和Some(T) ,其中T是Swift 4中可用的正确数据类型的关联值。 这是一个可选的整数声明 - var perhapsInt: Int? 这是一个可选的St