2

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

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

4

1 回答 1

2

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

interface FunctionInterface {
  float bar(int x);
}

FunctionInterface foo() {
  return new FunctionInterface() {

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

  };
}

请注意,Java 8 将引入闭包,这将使这一切变得不那么冗长。

于 2013-02-22T19:24:48.740 回答