如何将运算符作为参数传递?

时间:2013-02-27 02:41:09

标签: java arguments operators

我想将四个运算符中的一个(+, - ,*,/)传递给一个方法,并让它根据传递的运算符对两个整数执行操作。

static int op(String oper) {
    eval = 8 oper 4;
}

e.g。如果我使用op("+");调用它,则会添加84

现在,我只是在;之后得到了“8预期”。

我应该使用其他语法吗?我只是想减少一些代码的大小。

1 个答案:

答案 0 :(得分:5)

在Java 8中,我们将能够执行类似

的操作
foo(IntBinaryOperator oper) 

    eval = oper.apply(8, 4);

然后

foo(Integer::sum);

IntBinaryOperator times = (a,b)->a*b;
foo(times);

foo( (a,b)->a/b );