java - 根据同一方法的条件返回两种不同的数据类型

标签 java design-patterns

寻找最佳策略来处理根据条件返回两种不同数据类型的方法

public Response find(int id) {

Student std = studentService.findOne(empId):

if(std == null)
    return new ErrorResponse(errorCode);
else
   return new SuccessResponse(std);  

}

一个条件是我无法实现 ErrorResponse 或 SuccessResponse 的接口(interface)。

另一个条件是我不能为此拥有父类。

这些类是由其他客户端动态生成的类

最佳答案

 @Getter
 @Setter
 Class Response {
  private ErrorResponse error;
  private SuccessResponse success;
 }


 public Response find(int id) {
 Response res = new Response();
  Student std = studentService.findOne(empId):
  if (std == null)
    res.set(new ErrorResponse(errorCode));
  else
    return res.set(new SuccessResponse(std));
 }

我认为使用ErrorResponse和SuccessResponse的Optional可能会很好

关于java - 根据同一方法的条件返回两种不同的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59886882/

相关文章:

java - 如何找出 BufferedReader#readLine() 用于拆分行的行分隔符?

java - 使用递归通过迭代器查找字符串的排列

c++ - 如何合并两个具有相同代码但在不同结构上运行的类

javascript - 如何在 node.js 中编写一个事件发射器,让你创建一个函数 "myFunction",然后在它运行时调用成功或失败?

android - 用今天、昨天、明天等字符串格式化日期的正确方法

java - vaadin clara 中的内部 html

java - 指定默认@Bean 而不使用@Primary Spring Boot

java - 零长度匹配是否结束匹配过程?

java - MVC中类间消息传递的正确方法是什么?

python - 用于处理机器学习大型数据集的设计模式