. :
apply BinaryOperator
, , BinaryOperator Double . BinaryOperator "" , , , Double Double , BinaryOperator. , BiFunction.
BiFunction<Double, Integer, Double> opPercent = (t1,t2) -> (t1*t2)/100;
, Double Inetger mealCost taxPercent, - Double.
, :
public class TotalCost {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double mealCost = scan.nextDouble();
int tipPercent = scan.nextInt();
int taxPercent = scan.nextInt();
scan.close();
TriFunction<Double, Integer, Integer, Double> calcCost = (cost, tipPct, taxPcnt) ->
(cost + (cost * tipPct/100) + (cost * taxPcnt/100));
Double totalBill = calculation(calcCost, mealCost, tipPercent, taxPercent);
System.out.println(totalBill);
}
public static Double calculation(TriFunction<Double, Integer, Integer, Double> calcCost ,
Double mealCost, Integer tipPct, Integer taxPct) {
return calcCost.apply(mealCost, tipPct, taxPct);
}
}
@FunctionalInterface
interface TriFunction<T,U,V,R> {
R apply(T t, U u, V v);
}