2014-06-21 2 views
4

instanceof를 사용하고 있지만 현재 예상대로 작동하지 않습니다. 내 스크립트 내 자바 코드에서 검색 할 변수가 있습니다. 이 변수를 MyObject 클래스의 인스턴스 인 myObject라고 부르 자.Java 객체가 특정 Java 유형인지 Java nashorn 비교

if (myObject instanceof Java.type("MyObject")) { 
    //The check doesn't pass; the code here doesn't execute 
} 

나는 이것에 관해서 막연한 정보만을 찾을 수 있었다. myObject가 MyObject 클래스의 인스턴스인지 확실하게 확인하는 방법은 무엇입니까?

감사합니다.

+0

'MyObject'는 컴파일 타임에 알고있는 타입인가요? 그러면 myObject instanceof MyObject는 트릭을 수행합니다. –

+0

클래스를 nashorn 스크립트 엔진에 등록한다는 의미입니까? 어떤 식 으로든, 나는 그것이 알려져 있다고 생각하지 않는다. –

답변

8

당신이해야 할 일은 (물론 정규화 된 클래스 명으로). 예 : 이것은 확실히 작동합니다

jjs> var x = new java.util.BitSet() 
jjs> x instanceof Java.type("java.util.BitSet") 
true 

참고 : java.util.BitSetJava.type("java.util.BitSet") 난 그냥 당신이 객체를 생성하는 방법에 상관없이, 결과는 동일해야한다는 설명하기 위해 모두 사용, 교환 할 수있다.