Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
eclipse插件:如何从org.eclipse.jdt.core.dom.FieldDeclaration的数据类型创建org.eclipse.jdt.core.IType?_Eclipse_Eclipse Plugin_Eclipse Jdt - Fatal编程技术网

eclipse插件:如何从org.eclipse.jdt.core.dom.FieldDeclaration的数据类型创建org.eclipse.jdt.core.IType?

eclipse插件:如何从org.eclipse.jdt.core.dom.FieldDeclaration的数据类型创建org.eclipse.jdt.core.IType?,eclipse,eclipse-plugin,eclipse-jdt,Eclipse,Eclipse Plugin,Eclipse Jdt,使用ASTParser我正在解析一个类。现在我的目标是修改其中一个字段的类。该字段作为FieldDeclaration可用。现在我想从FieldDeclaration的数据类型创建IType 例如: 班犬{ 私人衣领c; } 这里“private Collar c”已经作为FieldDeclaration提供。如何创建“Collar”的IType 提前感谢这里有几个步骤您需要遵循。我将草拟解决方案。但是,我将让您自己来决定要编写的最终代码 首先要认识到的是,IType类和FieldDeclara

使用ASTParser我正在解析一个类。现在我的目标是修改其中一个字段的类。该字段作为FieldDeclaration可用。现在我想从FieldDeclaration的数据类型创建IType

例如: 班犬{ 私人衣领c; }

这里“private Collar c”已经作为FieldDeclaration提供。如何创建“Collar”的IType


提前感谢

这里有几个步骤您需要遵循。我将草拟解决方案。但是,我将让您自己来决定要编写的最终代码

首先要认识到的是,
IType
类和
FieldDeclaration
类是以不同的方式创建的,用于做不同的事情
IType
和相关接口用于查看整个程序的结构。而
fielddeclaration
和相关类是JavaDOM的一部分,用于查看单个文件的结构。如果您正在使用的类不在Eclipse中适当的Java项目中,那么将没有要创建的IType

因此,以下是您要做的:

  • ASTParser=ASTParser.create(AST.JLS8)
  • setResolveBindings(true)
  • CompilationUnit=parser.parse(…)
  • 拿到你的现场申报单
  • 字符串名称=fieldDeclaration.getType().resolveBinding().getQualifiedName()
  • IJavaProject=JavaCore.create(IProject);//传入与此基础项目对应的资源
  • IType type=project.findType(名称) 这并不容易,但遵循这些步骤应该是可行的。如果您需要,我可以提供有关步骤的说明