def getParentOfType[T <: PsiElement](element: PsiElement, aClass: Class[T], strict: Boolean = false): Option[T] = {
System.out.println(aClass.isInstance(element), aClass, element.getClass)
...
getParentOfType(el, classOf[JSClassImpl])
인쇄 작동하지 : 스칼라 유형 비교 다음
(false,class com.intellij.lang.javascript.psi.ecmal4.impl.JSClassImpl,class com.intellij.lang.javascript.psi.ecmal4.impl.JSClassImpl)
이 true로 평가하지해야
를?는 현재 해결 방법은 다음과 같습니다
System.out.println(aClass.toString == element.getClass.toString)
이 말도 안되는 것 같습니다. 나는 모든 것을 시도했다! 나는이 방법에서 Option(el.asInstanceOf[T])
을 반환 할 때 내가 그것을 사용하려고 할 때마다
는 그리고 나서, 나는 다음과 같은 오류가 발생합니다 :
java.lang.ClassCastException: com.intellij.lang.javascript.psi.ecmal4.impl.JSClassImpl cannot be cast to com.intellij.lang.javascript.psi.ecmal4.impl.JSClassImpl
나는 느낌이있다가 클래스 로더와 함께 할 수있는 뭔가가. IntelliJ에 지원 포럼에서
ClassCastException when casting to the same class
:
당신이 플러그인은 자신의 클래스 로더를 가지고 있음을 알아 두셔야합니다.
http://devnet.jetbrains.com/message/5259550;jsessionid=13C3F98277311F5EFFFAFD3135B42CEA
가능한 중복 http://stackoverflow.com/questions/9642859/scala -generic-abstract-type-ignored-for-isinstanceof –
작동하지 않는 질문에서'System.out.println (manifest.erasure.isInstance (element))'를 시도했습니다. – vaughan