switch (customerPaymentInfo.getPtType()) {
case CASH:
test();
otherMethod1();
break;
case CARD:
test();
otherMethod2();
break;
default:
throw new IllegalArgumentException("Payment Type is Not Correct.");
}
上記のコードでは、CASHまたはCARDの両方の場合に1つの共通の方法を実行しています。スイッチコードの共通コードのリファクタリング
それを単一の時間を使用するようにスイッチケース内の任意の可能性はありますか?私たちは、コードを書くことができるブロックの場合の場合のeaxmpleについては
以下のもの:これにアプローチする1つの方法は、今switch
switch (customerPaymentInfo.getPtType()) {
case CASH:
case CARD:
test();
break;
default:
throw new IllegalArgumentException("Payment Type is Not Correct.");
}
switch (customerPaymentInfo.getPtType()) {
case CASH:
otherMethod1();
break;
case CARD:
otherMethod2();
break;
default:
throw new IllegalArgumentException("Payment Type is Not Correct.");
}
のカスケードプロパティを使用することです
if (customerPaymentInfo.getPtType().equals("CASH") || customerPaymentInfo.getPtType().equals("CARD")) {
test();
}
あなたは 'case cash 'として複数のケースを書くことができます:case card:do stuff;それがあなたが意味するものならば、しかし、それはあなたのユースケースにはまったく適合しません。 – khelwood
'switch'の前に' test'を呼び出せますか? – bradimus
機能を追加する予定がある場合は、これが大きくなり、別の問題が発生する可能性があります。より良いアプローチは、異なるケースを扱うためにいくつかの戦略パターンを使用することです... –