2

私はthree.jsをjavaに移植しており、いくつかの変更と追加を行っています。しかし、反射の処理方法を決めるのに苦労しています。

THREE.Line3.closestPointToPointParameterなど、three.jsで関数を返すメソッドをいくつか実装する必要があります。このアイデアを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 に答える