在Java中,有没有办法模拟lua和python中的一流函数,比如这里?
def foo():
print "foo called"
bar = foo
bar() #output from this line is "foo called"
或者是在每种情况下使用不同方法的 switch 语句的唯一方法?
编辑:感谢您的澄清,我的意思是有没有办法创建对函数的引用,并像调用函数一样调用它。
另外,目标不是调用某个函数的某个实现,而是选择调用哪个函数,而选择的函数可以完全不同。我想这样做的原因是有一个更通用的类,不需要编辑来添加功能。有点像将函数放入集合或列表中。
Edit2:对于任何查看此问题以找到答案的人:这与堆栈和堆有关。Java 无法做到这一点,因为它的方法存储在堆栈上,这比堆要严格得多。然而,Python 将其函数存储在堆上,并在堆栈上对它们进行引用。由于函数是通过 python 中的引用调用的,因此您可以更改对它们的引用并根据需要使用。