2013-02-22 2 views
2

나는 내 자신의 몇 가지 변경 사항과 추가 사항으로 java에 three.js를 이식합니다. 그러나 나는 반사를 다루는 방법을 결정하는 데 문제가 있습니다.javascript의 자바 반환 함수

THREE.Line3.closestPointToPointParameter와 같이 three.js에서 함수를 반환하는 몇 가지 메소드를 구현해야합니다. Java에서이 아이디어를 구현하는 가장 좋은 방법은 무엇입니까? 아니면 더 많은 사용자 정의 동작을 수행하기 위해 메소드를 다시 작성하는 것이 좋습니다. 나는 아이디어와 기술에 열려 있습니다.

+4

Java는 Java 8 (금년에 출시 될 예정)까지 클로저를 지원하지 않으므로 원하는 기능이있는 인터페이스를 구현하는 객체를 반환해야합니다. –

+0

살펴보기 : http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Future.html – cIph3r

+1

(JVM + Java iterop 용) 스칼라를 사용할 수 있습니다. 사용하고 있습니다. 내가 작업하는 모든 "Java"프로젝트에서 스칼라. 충분히 돈을받지 못했다고 비난합니다. –

답변

2

함수는 Java에서 1 급 시민이 아니므로 함수를 반환하거나 변수에 할당 할 수 없습니다. Java 방식은 익명의 내부 클래스를 만드는 것입니다. 예를 들면 다음과 같습니다.

interface FunctionInterface { 
    float bar(int x); 
} 

FunctionInterface foo() { 
    return new FunctionInterface() { 

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

    }; 
} 

Java 8에서는 Closure를 사용하지 않으므로이 모든 내용이 간결 해집니다.

+2

... 일반적으로 이러한 내부 클래스는 특정 Java 인터페이스를 구현합니다. 훨씬 더 성가시다. –