是否可以在另一个功能中创建一个功能?如果没有,我应该如何定义一个能够在另一个函数内调用它的函数?
答案 0 :(得分:1)
是的,这是可能的。您可以在方法中立即声明它们,但是您可以在方法中声明一个类(本地类),在该类中使用函数,或者您可以定义匿名表达式中的类。
Java 1.1中添加了此功能,以支持在方法中定义的此类函数。
示例:
public class X {
interface Func {
int plus(int x);
}
public void myFunc() {
final int z = 3;
myOtherFunc(new Func() { // Anonymous class declaration
public int plus(int x) {
return z + x;
}
});
}
public void myOtherFunc(Func f) {
System.out.println(f.plus(8));
}
}
在Java 8及更高版本中,您可以声明这种类型的匿名类,它只以更好的方式实现一个方法:
myOtherFunc(x -> z + x);