Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中返回函数的Java等价物_Java_Javascript_Reflection_Three.js - Fatal编程技术网

javascript中返回函数的Java等价物

javascript中返回函数的Java等价物,java,javascript,reflection,three.js,Java,Javascript,Reflection,Three.js,我正在将three.js移植到java,并进行了一些自己的更改和添加。但是,我在决定如何处理反射时遇到困难 我需要实现一些在three.js中返回函数的方法,例如three.Line3.closestPointToPointParameter。在java中实现这一想法的最佳方法是什么,或者重写方法以实现更自定义的行为是一个好主意?我对想法和技术持开放态度。函数在Java中不是一等公民,您不能返回它们或将它们分配给变量。Java的方法是创建匿名内部类。例如: interface FunctionI

我正在将three.js移植到java,并进行了一些自己的更改和添加。但是,我在决定如何处理反射时遇到困难


我需要实现一些在three.js中返回函数的方法,例如three.Line3.closestPointToPointParameter。在java中实现这一想法的最佳方法是什么,或者重写方法以实现更自定义的行为是一个好主意?我对想法和技术持开放态度。

函数在Java中不是一等公民,您不能返回它们或将它们分配给变量。Java的方法是创建匿名内部类。例如:

interface FunctionInterface {
  float bar(int x);
}

FunctionInterface foo() {
  return new FunctionInterface() {

    @Override
    public float bar(int x) {
      return x;
    }

  };
}

请注意,Java 8将引入闭包,这将减少所有这些内容的冗长。

因为Java直到Java 8(将于今年推出)才支持闭包,所以您应该返回一个对象,该对象实现了一个具有您想要/需要的函数的接口。。我在从事的每个“Java”项目中都使用Scala。怪我没有得到足够的报酬。。。。通常这些内部类实现一个特定的Java接口。要麻烦得多。