2016-06-14 13 views
-3

私は、割引をチェックする複数のパブリックメソッドを持っています。コードを何度も繰り返さずにパブリックメソッドがアクセスできるプライベートメソッドのコードを大量に持ちます。ここにコードがあります。これは可能ですか?プライベートメソッドを呼び出すことで複数のパブリックメソッドを短くしました

public static boolean isE1(WebOrder order) 
    { 
    if(order.getPromos().stream().filter(i -> E1.contains(i.toUpperCase())).findFirst().isPresent()) 
    { 
    return true; 
    } 
    else 
    { 
    List<Discount> discounts = new LinkedList<>(); 

    order.getItems().forEach(i -> discounts.addAll(i.getDiscounts())); 

    if(!discounts.isEmpty()) 
    { 
     return discounts.stream() 
      .filter(i -> E1.contains(i.getCode().toUpperCase())) 
      .findFirst() 
      .isPresent(); 
    } 
    else 
    { 
     return false; 
    } 
    } 
} 
    public static boolean isE2(WebOrder order) 
    { 
    if(order.getPromos().stream().filter(i -> E2.contains(i.toUpperCase())).findFirst().isPresent()) 
    { 
    return true; 
    } 
    else 
    { 
    List<Discount> discounts = new LinkedList<>(); 

    order.getItems().forEach(i -> discounts.addAll(i.getDiscounts())); 

    if(!discounts.isEmpty()) 
    { 
     return discounts.stream() 
       .filter(i -> E2.contains(i.getCode().toUpperCase())) 
       .findFirst() 
       .isPresent(); 
    } 
    else 
    { 
     return false; 
    } 
    } 

}

+2

はい?あなたは何を求めていますか? – pvg

+1

もちろん可能です。それを撃ちましょう。あなたが問題に遭遇した場合は、実行している特定の問題について質問を投稿してください。 –

+0

私はE1とE2の間に違いは見当たりません。なぜあなたは複数の方法が必要ですか? – micker

答えて

1

はいそれは可能です:

だけプライベート静的でメソッドを起動します。

public static boolean isE2(WebOrder order) 
{ 
    yourMethod(order); 
} 

private static yourMethod(WebOrder order){ 
    //your code 

    if(order.getPromos().stream().filter(i -> E1.contains(i.toUpperCase())).findFirst().isPresent()) 
{ 
    return true; 
} 
else 
{ 
    List<Discount> discounts = new LinkedList<>(); 

order.getItems().forEach(i -> discounts.addAll(i.getDiscounts())); 

if(!discounts.isEmpty()) 
{ 
    return discounts.stream() 
     .filter(i -> E1.contains(i.getCode().toUpperCase())) 
     .findFirst() 
     .isPresent(); 
} 
else 
{ 
    return false; 
    } 
} 
} 
+0

プライベートスタティックで3つの割引をすべて使用するにはどうすればいいですか? – Norcal

+0

@Norcalメソッドに共通部分だけを追加してください!次に、投稿した2つのメソッドの値を変更します。 –

+0

いいえ私は持っていると言うことができます プライベート静的最終セット E1 = Collections.unmodifiableSet(新しいHashSet <>(Arrays.asList( "E1-Associate")))); とE2の割引コードを支配している別の... は プライベート静的最終セット PARENT_DISCOUNT言うことができますし、そのフォーマットを使用することも可能である= へ= E1とE2の文字列? – Norcal

関連する問題