- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Eclipse ASTParser 来分析并在可能的情况下向某些类添加一些代码。我需要的信息之一需要绑定(bind),但因为这是一个独立的项目(最终目标是一个命令行工具,独立于 eclipse)我不能拥有它们( requireBinding()
返回 null
)。
在阅读了很多帖子之后,我能走的远是使用this examples为了使用 FileASTRequestor
但这不是要走的路,因为在我看来,我们必须在生成 AST 树之前提供绑定(bind)的 KEY。
我找到了可以使用 ASTParser.setEnvironment 的地方方法以便在独立的 java 应用程序中使用绑定(bind),但我认为我做的不正确。下面的代码有什么问题?
private static final String rootDir = "D:\\workspace\\stateless\\";
private static final String[] classpath = java.lang.System.getProperty( "java.class.path" ).split(";");
private static final String source =
"package de.siemens.tools.stateless.test.examples; " +
"public class ClassWithFinalMemberVariables {" +
"private final int _memberIntVariable = 0;" +
"public void method() {" +
"int localVariable = 0;" +
"System.out.println(_memberIntVariable + localVariable);" +
"}" +
"}";
public static void main(String[] args) throws CoreException {
Document document = new Document(source);
ASTParser parser = ASTParser.newParser(AST.JLS4);
parser.setKind(ASTParser.K_COMPILATION_UNIT);
parser.setEnvironment(classpath, new String[] { rootDir },
new String[] { "UTF8" }, true);
parser.setSource(document.get().toCharArray());
parser.setResolveBindings(true);
parser.setBindingsRecovery(true);
CompilationUnit unit = (CompilationUnit)parser.createAST(null);
unit.recordModifications();
unit.accept(new ASTVisitor() {
@Override
public void endVisit(VariableDeclarationFragment node) {
IVariableBinding bind = node.resolveBinding();
if(bind == null)
System.out.println("ERROR: bind is null");
super.endVisit(node);
}
ERROR: bind is null
”。
最佳答案
我已经解决了,代码在这里:
http://pasteit.com/19433
尽管我更喜欢 ASTVisitor 模型,但这个模型为我提供了所有可用的绑定(bind)。
对于那些好奇的人,这里是关于这个问题的讨论:https://bugs.eclipse.org/bugs/show_bug.cgi?id=206391
编辑:我不知道这是否是最好的解决方案,如果您有任何建议,请告诉我
关于java - 独立 Java 应用程序上的 Eclipse AST 变量绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13453811/
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 Improve th
所以我正在开发一个黑 jack 程序,但我有点卡住了。我会警告大家,我对编程真的很陌生,而且,我正在项目中期......所以有一些松散的结局和未使用的变量,以及一些不必要的逻辑(用于测试),但这就是我
我正在尝试创建一个可用作 OpenGL 测试工具的示例程序。到目前为止,我的那个似乎可以工作,但似乎忽略了通过统一变量 MVPMatrix 传递的 MVP 矩阵。当我添加代码以读回制服并检查它是否确实
感谢您帮助我,这是有关我的代码的部分。 printf("Thank you, now please enter the logic gate"); scanf("%s", &C); if (C ==
public static void ejemplosString(String palabra){ char[] letras = palabra.toCharArray();
所以,我有一个 php 应用程序,通过 cgi 和 nginx 运行。我有一个 .jar 程序,用于在条形码打印机(Zebra)上打印条形码,猜猜看是什么!。 我的 php 应用程序使用 exec()
我遇到的唯一问题是 getAll() 方法,它似乎在 PersonnelController 类中的位置立即运行。我也曾在其他很多地方尝试过,但都没有成功。 setAll() 方法看起来不错,我已经测
我是一名优秀的程序员,十分优秀!