我有一个项目,我们使用ant构建文件来创建一些.java文件。这些构建的文件需要引用已经存在的其他java文件。我的问题是,构建的文件可能有一个代码行,例如
arg = (Expr) new Ast.BinaryOP(lhs, BOp.B_MINUS, rhs);
其中它将显示错误"Ast.BinaryOP无法解析为类型"。然后我可以再次键入Ast.BinaryOP,并使用自动完成来选择BinaryOP部分,错误将消失。BOp.B_MINUS也是如此。据我所知,我确实导入了(可能太多次了)必要的其他文件。即
import cd.ir.Ast;
import cd.ir.Ast.*;
import cd.ir.Ast.Expr;
import cd.ir.Ast.BinaryOp;
import cd.ir.Ast.BinaryOp.BOp;
到目前为止,我尝试了
- 重新启动Eclipse
- "清理"项目
- 无论如何只运行项目(不起作用)
- 删除"Ast."部分,如果我在Eclipse中这样做,它将再次工作,但如果以这种方式生成,则不会
- 用谷歌搜索这个问题,分别在Stackoverflow上搜索它,结果发现它很难,因为有很多相关的问题。据我所知,没有好的关键词
- 从Eclipse中删除了该项目并新导入
我需要反复运行ant构建文件来测试生成.java文件的代码,因此不能手动更改所有错误。
感谢您提前提供的任何建议/帮助。如果你告诉我什么可以帮助我,我很乐意提供更多信息。
在项目上点击F5,打开文件,然后尝试点击Ctrl+Shift+O自动组织导入。
在咨询了一位也没有看到问题的朋友后,我终于找到了它。回想起来很有逻辑,但足够小,我花了2个小时试图找到它:
import cd.ir.Ast.BinaryOp;
vs:
new Ast.BinaryOP(....
BinaryOp与BinaryOp