如果一个字段在可完成的未来代码中为空,我必须发送一个异常:
public CompletableFuture<ChildDTO> findChild(@NotEmpty String id) {
return ChildRepository.findAsyncById(id)
.thenApply(optionalChild -> optionalChild
.map(Child -> ObjectMapperUtils.map(Child, ChildDTO.class))
.orElseThrow(CurrentDataNotFoundException::new));
}
这个想法是,如果孩子的字段为空(在本例中为lastName),我必须抛出一个自定义异常,我不太确定如何实现这一点。
我的想法是使用thenAccept方法发送异常,如下所示:
public CompletableFuture<ChildDTO> findChild(@NotEmpty String id) {
return ChildRepository.findAsyncById(id)
.thenApply(optionalChild -> optionalChild
.map(Child -> ObjectMapperUtils.map(Child, ChildDTO.class))
.orElseThrow(CurrentDataNotFoundException::new))
}.thenAccept{
........................
}
ObjectMapperUtils Code:
public static <S, D> D map(final S entityToMap, Class<D> expectedClass) {
return modelMapper.map(entityToMap, expectedClass);
}
public class ChildDTO {
@NotEmpty
private String id;
@PassengerIdConstraint
private String ownerId;
@NotEmpty
private String firstName;
@NotEmpty
private String lastName;
private String nickName;
@ChildAgeConstraint
private Integer age;
@NotNull
private Gender gender;
@NotEmpty
private String language;
我必须评估数据库中的lastName是否为空,我必须抛出一个异常。
有什么想法吗?
我下面的方法是假设findAsyncById
方法返回CompletableFuture
public CompletableFuture<ChildDTO> findChild(@NotEmpty String id) {
return ChildRepository.findAsyncById(id)
.thenApply(optionalChild -> optionalChild
.map(Child -> ObjectMapperUtils.map(Child, ChildDTO.class))
// If child last name is empty then return empty optional
.filter(child->!child.getLastName())
// If optional is empty then throw exception
.orElseThrow(CurrentDataNotFoundException::new))
我试图理解使用PowerMockito模拟静态方法进行测试的基础知识,因为我对这方面还不熟悉。我被卡住了,因为如果我使用下面提到的测试饮料,会出现非常不寻常的情况。java我得到未完成的stubging异常。 但当我换乘多伦时。。当。。然后返回异常消失。 TestDrink.java 这就是我想嘲弄的班级。 可乐JAVA 例外 如果可能,请尽量给出解释清楚的答案。
我正在开发一个微服务应用程序,在服务布局中,我想使用可完成的未来.runAsync()调用。问题是当我想抛出异常时,我有自己的处理程序异常,但是当它在 CompletedFuture 中的捕获块中生成时,我无法捕获错误,如下所示: 控制器: 服务: 客户: 错误处理程序: 我不可能使用正确的形式。知道如何在supplyAsync块中抛出异常吗?
问题内容: 当我编译下面的代码时,出现以下错误: 代码: 我已经宣布要抛出它。我想念什么? 完整代码在https://github.com/spakai/composite_indexes中 问题答案: 从Java 8开始,检查异常比Java承诺的要早得多,并且不能与它们很好地配合使用。从技术上讲,BiFunction不会声明抛出任何检查异常。因此,您传递给的,也不能将其抛出。 请通过继承选中。还
我要做的是异步计算树结构的深度,我将有树的第一层,我想启动一个异步线程来分别计算每个节点的深度。 在计算过程中,树中显然可能有一个分叉,在这一点上,我想踢一个额外的线程来计算那个分支。 我已经得到了这个工作,但我需要做一些整理逻辑,当所有这些未来完成。但我对这一过程中产生的额外的可完成的未来感到困扰。 我会用什么方法来保存所有开始的CompletableFutures+那些动态创建的,并且在执行任
当我编译下面的代码时,我得到以下错误: 代码: 我已经宣布它被扔掉了。我错过了什么? 完整的代码在https://github.com/spakai/composite_indexes
我经历了这个问题,也经历了这个问题。但他们都没有帮助。有人能让我知道我做错了什么吗?