我正在将 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 相当于 javascript 中的返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15031720/