我知道类似的东西在python和其他语言中是可能的,但是我想看看在java中是否有一些基本的东西我忽略了,或者如果语言没有设置成这样,基本上我想有一个if/then or开关,它现在如下所示:
if X {
fillRect(<bunch of variables>);
} else
drawRect(<bunch of variables>);
相反,我想做以下的事情,这在其他语言中是可能的,imho更优雅,因为不需要为了一个简单的选择而重复
if X{
funct = fillRect;
} else funct=drawRect;
funct(<bunch of variables>);
难道没有一个相当简单的方法可以做到这一点吗?谢谢。
1条答案
按热度按时间zyfwsgd61#
是的,这在java中是绝对可能的。您只需要一个接口来定义可以分配和随后调用的“函数”。
例如:
我使用lambda函数来定义操作,但它们也可以很容易地成为方法引用。
java还附带了许多标准接口
java.util.function
Packagejava.base
所以你通常甚至不需要定义一个接口。我的例子中的一个可以替换为BinaryOperator<Integer>
.