Create/call 函数中的函数
Create/call a function within a function
是否可以在另一个函数中创建一个函数?如果没有,我应该如何定义一个函数才能在另一个函数中调用它?
是的,这是可能的。你可以在你的方法中立即声明它们,但是你可以在你的方法中声明一个 class(一个 local class),其中有一个函数 class,或者您可以在表达式中定义 anonymous class。
此功能已添加到 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 和更高版本中,您可以声明这种类型的匿名 class,它只以一种更好的方式实现一种方法:
myOtherFunc(x -> z + x);
是否可以在另一个函数中创建一个函数?如果没有,我应该如何定义一个函数才能在另一个函数中调用它?
是的,这是可能的。你可以在你的方法中立即声明它们,但是你可以在你的方法中声明一个 class(一个 local class),其中有一个函数 class,或者您可以在表达式中定义 anonymous class。
此功能已添加到 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 和更高版本中,您可以声明这种类型的匿名 class,它只以一种更好的方式实现一种方法:
myOtherFunc(x -> z + x);