Ich habe mehrere öffentliche Methoden, die auf Rabatte überprüfen, möchte ich den Code nicht mehrmals wiederholen und nur den Großteil des Codes in einer privaten Methode, die die öffentlichen Methoden zugreifen können. Hier ist der Code. Ist das möglich?Lassen Sie mehrere öffentliche Methoden durch den Aufruf von privaten verkürzt
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;
}
}
}
ja? Was fragst du konkret? – pvg
Sicher können sie. Geben Sie es eine Chance, und wenn Sie in Schwierigkeiten geraten, posten Sie eine Frage zu dem spezifischen Problem, das Sie stoßen. –
Ich sehe keinen Unterschied zwischen E1 und E2. Warum brauchen Sie mehrere Methoden? – micker