Java 为什么';这个导入在Eclipse中不能跨包工作吗?
以下是项目架构: 以下是不会编译的Car类:Java 为什么';这个导入在Eclipse中不能跨包工作吗?,java,eclipse,Java,Eclipse,以下是项目架构: 以下是不会编译的Car类: package car; import engine.Engine; public class Car { private Engine engine; /*** * Constructor * @param engine The engine that the car object will have */ Car(Engine e
package car;
import engine.Engine;
public class Car {
private Engine engine;
/***
* Constructor
* @param engine The engine that the car object will have
*/
Car(Engine engine) {
engine = new Engine(engine); // Use the Engine copy constructor
}
}
以下是错误:
以下是发动机包中的发动机类别:
package engine;
public class Engine {
private String name;
private int displacement;
public Engine(String name, int displacement) throws Exception {
setName(name);
setDisplacement(displacement);
}
public String getName() {return name;}
public int getDisplacement() {return displacement;}
private void setName(String name) throws Exception {
if (name.trim().length() == 0) {
throw new Exception("Engine name cannot be blank");
}
}
private void setDisplacement(int displacement) throws Exception {
if (displacement < 0) {
throw new Exception("Engine displacement cannot be zero or negative");
}
}
}
打包引擎;
公共级引擎{
私有字符串名称;
私人流离失所;
公共引擎(字符串名,int置换)引发异常{
集合名(名称);
位移(位移);
}
公共字符串getName(){return name;}
public int getDisplacement(){return displacement;}
私有void setName(字符串名称)引发异常{
如果(name.trim().length()==0){
抛出新异常(“引擎名称不能为空”);
}
}
私有void setDisplacement(int displacement)引发异常{
if(位移<0){
抛出新异常(“发动机排量不能为零或负”);
}
}
}
尝试在project-->clean中清理项目修复:我没有更改代码,我从工作区中删除了项目,关闭了Eclipse,用不同的工作区重新打开了Eclipse,并将相同的项目导入了工作区。Arrrgh.当您单击第一个建议的快速修复时会发生什么:导入“引擎”(Engine)
?@Bentaye这就是我如何得到您在代码中看到的导入语句的原因。Eclipse添加了它。您有未保存的更改吗?import
语句行中的错误消息说什么?@howlger它说“Unused import”arrgh!结合您的屏幕截图和Eclipse的默认项目设置,您发布的代码没有问题。它应该会起作用。请尝试重新启动Eclipse,或者创建一个新项目并将代码复制到其中。编译器是否添加到生成路径中。?是,编译器位于生成路径中?引擎依赖项是否添加到生成路径中。??