2017-09-15 41 views
0

我知道我不能从一个Java函数返回多个类,但我试图找出哪个是最好/优雅的方式来返回不同类型的对象,具体取决于函数的逻辑。 我的想法是让函数返回一个错误列表(一个创建的类来容纳几个错误属性)或者函数自然的结果,如果一切正常的话。从java函数返回错误列表或结果

我想将解决方案应用于项目中的许多功能,因此我们的想法是让他们返回错误列表或任何函数必须返回的列表。

我也想到了某种Pair类,但这在Java中默认情况下并不存在。那双类会是这样的:

Pair<List<Error>, T>

回答

0

为什么你不应该考虑使用自定义类为这种情况?它可以具有多个错误属性,根据场景可能有也可能不会为空,并且如果所有错误属性均为空,可以获得满意的结果。您也可以提供一个帮助方法来检查对象是否有任何错误。

+0

感谢您的评论Yash ...我已经有一个名为Errors的类,它拥有一个列表或错误,我的想法是获得某种全局解决方案,所以任何方法都可以返回一个类错误或任何方法如果每个人都好,就回来。我可以创建一个包含Errors属性和每种方法的逻辑返回值的类,但这意味着很多辅助类(每种方法几乎都有一个!) –

+0

嗨,Pep!我相信这会奏效。但是你是否考虑过首先从方法中返回错误列表的做法违反了方法的定义?我的意思是,一个名为getPrimaryKeys()的方法返回一个错误列表,而不是整数列表正在破坏目的。我宁愿只从方法中返回预期的returnType,并使用自定义异常处理所有其他条件。这将是最“JAVA”的做法。 – Yash

+0

是的......我也想过(抛出异常而不是返回错误),但我希望该方法能够返回多于1个错误(例如,验证参数......例如“参数1不是可选的” ,“参数2不能为空”和“参数3必须大于0”)。我可以通过例外获得吗? –