2012-04-25 2 views
3

MethodDeclaration 개체와 IMethod 개체를 비교하고 이들이 유사한 지 확인할 수있는 방법이 있습니까? 또는 MethodDeclaration 객체를 IMethod 객체로 변환 할 수있는 방법이 있습니까 (IMethod는 isSimilar 함수를 제공합니다)?MethodDeclaration가 IMethod와 유사한 지 확인하십시오.

업데이트 : 마찬가지로 FieldDeclaration을 IField로 변환 할 수 있는지 알고 싶습니다.

답변

2

MethodDeclaration은 ASTNode이며 IMethod는 JavaElement입니다. 이 두 개체가 동일한 메서드에 해당하는지 확인하는 확실한 방법은 Binding을 비교하는 것입니다.

ASTNode 및 JavaElement에 대한 바인딩을 얻는 방법은 http://wiki.eclipse.org/JDT/FAQ#From_an_ASTNode_to_an_IBindinghttp://wiki.eclipse.org/JDT/FAQ#From_an_IJavaElement_to_an_IBinding을 참조하십시오. Binding 또는 Binding 키를 가지고 있으면 그것을 비교할 수 있습니다.

+0

고마워요. IMethod method = (IMethod) methoDeclarationNode.resolveBinding(). getJavaElement();를 사용하여 MethodDeclaration에서 IMethod를 추출 할 수있었습니다. 그런 다음 isSimilar 메소드를 사용하여 두 IMethod를 비교했습니다. 그러나 FieldDeclaration에는 resolveBinding 메서드가 없습니다. 제공된 링크에서 ASTParser.createBindings를 사용하여 IBinding을 만들 수 있지만 progressMonitor가 필요하다고 언급되었습니다. 진행 모니터를 null로 지정할 수 있습니까? –

+0

또한 FieldDeclarationNode에서 바인딩 키를 가져 오는 방법을 알려주십시오. AST 노드의 javaElement를 찾는 FAQ에 대한 정보는 없습니다. –

+0

예, 진행 모니터가 null 일 수 있습니다. –