例えば、メソッド内のトランザクション内で何かしらを削除する処理があったとして、それを繰り返して正常に削除操作が行えた件数となんらかの例外が発生して削除が異常な形で終了してしまった両方の件数が欲しい場合のスマートなやり方を教えてください!
値はメソッドの外で取得する形で欲しいです
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
enumを定義しているなら、それをキーに、値はラッパー型のHashMapでどうでしょう。戻りの型はMapが良いとは思います。
enumを活用して、配列の添字がマジックナンバーになるのを防げますし、処理結果の状態が増えても、キーが状態の名前になるので、要素と状態が関連付けられて、コードの見通しも良くなるかな、と思います。
ただし整数のラッパー型は不変オブジェクトなので、カウント処理はプリミティブ型の変数で行なって、戻り値を組み立てる形でMapに詰めましょう。
これを基本に発展させるコードへ洗練することもできると思いますよ。
投稿2019/10/22 02:06
総合スコア454
0
要素数2の配列でいいのではないでしょうか。
投稿2019/10/19 08:35
総合スコア20649
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/19 14:56
0
ベストアンサー
タプル
Javaにタプルがあれば良いのに。戻り値だけでなく、Streamのmap()でタプルを作れたらと思うことがあります。
Java 複数の型をreturnする方法
JavaでTupleが欲しくなったときメモ
Javaの小枝 - Tuple を使う
戻り値
今のJavaのバージョンでは、swordoneさん、jimbeさんのおっしゃるように、オブジェクト(配列、Map、List、自作タプルなど)を返すしかないです。(プリミティブ型longのワードを分割して2つの値を押し込むとか、文字列で2つの値を表現するとか、Object Streamに吐き出して(シリアライズ)単一戻り値にできますが、へたな考えです)
Enum
Enumの質問かなと思いコードを書いてみました。
Java
1public enum Result { 2 3 Normal, Failed; 4 5 public static void count(Result sf, int[] counter) { 6 counter[sf.ordinal()]++; 7 } 8 public static int value(Result sf, int[] counter) { 9 return counter[sf.ordinal()]; 10 } 11 public static int[] counters() { 12 return new int[Result.values().length]; 13 } 14}
より良い回答を望むなら、ご自分のコード(プラン)を追記してください。
投稿2019/10/20 01:34
総合スコア1081
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。