Eclipse IType类忽略编译错误

时间:2013-06-03 16:55:47

标签: eclipse-plugin

我一直试图通过在IType中定义错误的类型字段来产生编译错误,但是,当在包含IType所代表的类文件的项目中搜索问题时,没有错误。

我不知道如何理解这样的结果,是应该发生的? IType是否可以包含使用未定义类的方法或字段?

我的目标是检测是否忽略了这些错误,或者根本不会发生这些错误。

如下所述,这是我希望产生错误的代码:

String source = "private Asdf a;";
itype.createField(source, null, true, null);        
String jmethod = "\tpublic void foo() {\n\t\tint b = a.getB();\n\t}\n";
itype.createMethod(jmethod, null, true, null);

从未定义过Asdf。

1 个答案:

答案 0 :(得分:0)

问题是您对findMarkers的调用时间不够长,构建尚未完成,或者对createField的调用根本没有触发构建。

只有在编译或协调后才会发现问题。编译后有很多内部方法可以访问问题,但是如果你想保持API兼容,那么你最好的办法是创建一个compilationParticipant。请参阅课程org.eclipse.jdt.core.compiler.CompilationParticipant以及名为org.eclipse.jdt.core.compilationParticipant的关联扩展点。实现其中之一将确保在发生强制计算问题的操作时触发代码。