2017-09-15 74 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」)。我可以通過例外獲得嗎? –