2017-09-15 6 views
0

Java関数から複数のクラスを返すことはできませんが、関数のロジックに応じて異なる種類のオブジェクトを返す最良の方法です。 私の考えは、関数がエラー(いくつかのエラープロパティを保持するために作成されたクラス)のリストを返すようにすることでした。Java関数からエラーリストまたは結果を返す

私は、プロジェクト内の多くの機能にソリューションを適用したいので、エラーのリストまたは関数が返す必要があるものを返すようにします。

私はPairクラスも考えていますが、Javaではデフォルトでは存在しません。あなたは、このシナリオのためにカスタムクラスを使用することを検討してはいけない理由

Pair<List<Error>, T>

答えて

0

:そのペアのクラスのようなものでしょうか?シナリオに従って複数のエラープロパティを持つことができますが、すべてのエラープロパティがnullの場合に取得できます。また、オブジェクトに実際にエラーがあるかどうかを調べるヘルパーメソッドを提供することもできます。

+0

ありがとうコメントYash ...リストやエラーを保持するErrorsという名前のクラスがすでにあります。私のアイデアは何らかのグローバルな解決策を得ることでしたので、どのメソッドもクラスを返すことができました。いつもお世話になりましたか?私はErrorsプロパティと各メソッドの論理的な戻り値を保持するクラスを作成することができますが、これは多くの補助クラス(それぞれのメソッドにほぼ1つ)を意味します。 –

+0

こんにちはPep!私はこれがうまくいくと確信しています。しかし、最初にメソッドのエラーリストを返すことは、メソッドの定義を無視しているという事実を考慮しましたか?私はgetPrimaryKeys()という名前のメソッドが整数のリストの代わりにエラーのリストを返すことを意味しています。むしろ、意図したreturnTypeだけをメソッドから返し、カスタム例外を使用して他のすべての条件を処理すると思います。それはそれを行う最も "Java"の方法でしょう。 – Yash

+0

はい...私はそれについても考えました(エラーを返す代わりに例外を投げる)が、1つ以上のエラーを返すことができるメソッドを望んでいました(たとえば、パラメータの検証... "パラメータ1はオプションではありません" 「パラメータ2はヌルにはできません」、「パラメータ3は0より大きくなければなりません」)。私は例外でそれを得ることができますか? –

関連する問題