是否可以在Java中定义函数内的函数?我正在尝试做类似的事情:
public static boolean fun1()
{
static void fun2()
{
body of function.
fun2();
}
return returnValue;
}
但我收到错误Illegal start of expression
。
答案 0 :(得分:40)
你不能这样做的原因是函数必须是附加到类的方法。与JavaScript和类似语言不同,函数不是数据类型。有一种方法可以将它们组合成一个支持Java中的闭包(希望在Java 8中),但是从Java 6和7开始,它不受支持。如果你想做类似的事情,你可以这样做:
interface MyFun {
void fun2();
}
public static boolean fun1()
{
MyFun fun2 = new MyFun() {
public void fun2() {
//....
}
};
fun2.fun2();
return returnValue;
}
答案 1 :(得分:34)
你不能(在Java中它们被称为方法)。
但是,您可以在方法内部定义匿名类,并调用其方法。