package com.scheduler.process;
public class Process {
public enum state {
NOT_SUBMITTED, SUBMITTED, BLOCKED, READY, RUNNING, COMPLETED
}
private state currentState;
public state getCurrentState() {
return currentState;
}
public void setCurrentState(state currentState) {
this.currentState = currentState;
}
}
package com.scheduler.machine;
import com.scheduler.process.Process;
import com.scheduler.process.Process.state;
public class Machine {
com.scheduler.process.Process p = new com.scheduler.process.Process();
state s = state.READY; //fails if I don't also explicitly import Process.state
p.setCurrentState(s); //says I need a declarator id after 's'... this is wrong.
p.setCurrentState(state.READY);
}
修改了示例以尝试直接解决问题。我无法更改此代码的状态。Eclipse 建议导入Process.state like
我之前的示例中的内容,但这也不起作用。这允许state s = state.READY
但调用p.setCurrentState(s);
失败p.setCurrentState(state.READY);
问题仍在继续......按照奥列格的建议,我尝试了更多排列:
package com.scheduler.machine;
import com.scheduler.process.Process;
import com.scheduler.process.Process.*;
public class Machine {
com.scheduler.process.Process p = new com.scheduler.process.Process();
public state s = Process.state.READY;
p.setCurrentState(s);
p.setCurrentState(state.READY);
}
好的。现在很清楚我是脑叶切除术的候选人。
package com.scheduler.machine;
import com.scheduler.process.Process;
import com.scheduler.process.Process.state;
public class Machine {
public void doStuff(){
com.scheduler.process.Process p = new com.scheduler.process.Process();
state s = state.READY; //fails if I don't also explicitly import Process.state
p.setCurrentState(s); //says I need a declarator id after 's'... this is wrong.
p.setCurrentState(state.READY);
}
}
我需要在课堂上有一个方法——但我们仍然在这里遗漏了一些东西(可能很明显)。当我通过命令行并在编译过程后在机器类上运行 javac 时,我仍然收到以下错误:
mseil@context:/media/MULTIMEDIA/Scratch/Scratch/src/com/scheduler/machine$ javac Machine.java
Machine.java:3: package com.scheduler.process does not exist
import com.scheduler.process.Process;
^
所以我想现在的问题变成了,我错过了什么白痴的东西,阻止我手动编译eclipse在幕后为我做的事情?
====== 问题在这里解决:
Java 泛型代码在 Eclipse 中编译,但不在命令行中