如何从方法 return 对象 A 或对象 B
How to return object A or object B from a method
我有一个使用 REST API 的方法,可以接收 OK 响应对象(我将其称为 MyObject)或错误对象 (MyError) 作为响应。此时我的方法必须 return MyObject 或 MyError,我应该如何处理它?
我的想法是创建一个包含 MyObject 和 MyError 的 HandleResponse 对象以及 return 这个对象。然后在调用 class 时,我检查两者中的哪一个为空,因此在另一个对象上工作。是正确的还是有更正确的管理方式?
你提出的方法是可以的,其实函数式编程处理这种情况的方法也是类似的。在 vavr 库 (https://www.vavr.io/) 中,一个向 java 添加函数式编程功能的库,有一个名为 Either 的 monad 完全相同。
它是一个具有两个泛型类型 Either 的对象,其中 E 是错误对象的类型,T 是成功答案的类型。您可以对这两个部分(错误或成功)上的这些对象应用不同的转换,以在任一情况下应用所需的逻辑。
如果您对如何应用它感兴趣,可以访问 https://www.baeldung.com/vavr-either.
如果 API 调用中的错误也意味着您自己的应用程序中的错误,则另一种选择是在 API return 出现错误时抛出异常并进行处理正确所以方法只有return成功案例
我有一个使用 REST API 的方法,可以接收 OK 响应对象(我将其称为 MyObject)或错误对象 (MyError) 作为响应。此时我的方法必须 return MyObject 或 MyError,我应该如何处理它?
我的想法是创建一个包含 MyObject 和 MyError 的 HandleResponse 对象以及 return 这个对象。然后在调用 class 时,我检查两者中的哪一个为空,因此在另一个对象上工作。是正确的还是有更正确的管理方式?
你提出的方法是可以的,其实函数式编程处理这种情况的方法也是类似的。在 vavr 库 (https://www.vavr.io/) 中,一个向 java 添加函数式编程功能的库,有一个名为 Either 的 monad 完全相同。
它是一个具有两个泛型类型 Either
如果 API 调用中的错误也意味着您自己的应用程序中的错误,则另一种选择是在 API return 出现错误时抛出异常并进行处理正确所以方法只有return成功案例