在函数中创建/调用函数

时间:2015-07-01 01:38:09

标签: java processing

是否可以在另一个功能中创建一个功能?如果没有,我应该如何定义一个能够在另一个函数内调用它的函数?

1 个答案:

答案 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);