有没有把这个测试放在一个单独的课程中?我试过但没有成功。
public class TrafficLightprj
{
public enum TrafficLight
{
RED(1),
GREEN(2),
YELLOW(3);
private final int duration;
TrafficLight(int duration) {
this.duration = duration;
}
public int getDuration() {
return this.duration;
}
public static void main(String[] args)
{
for(TrafficLight light: TrafficLight.values())
{
System.out.println("The traffic light value is: " +light);
System.out.println("The duration of that trafic light value is: " + light.getDuration());
}
}
}
}
答案 0 :(得分:13)
我不确定我在你的问题中理解你的意思,所以我会回答你所想的想法。
枚举可以是Java中自己的文件。例如,您可以拥有一个名为 TrafficLight 的文件,其内部是:
public enum TrafficLight {
RED(1),
GREEN(2),
YELLOW(3);
private final int duration;
TrafficLight(int duration) {
this.duration = duration;
}
public int getDuration() {
return this.duration;
}
}
然后,您可以在测试项目中使用此枚举( TrafficLightPrj.java )。像这样:
public class TrafficLightprj {
public static void main(String[] args) {
for(TrafficLight light: TrafficLight.values()) {
System.out.println("The traffic light value is: " +light);
System.out.println("The duration of that trafic light value is: " +light.getDuration());
}
}
}
答案 1 :(得分:2)
您需要将其放在不同的.java文件中。在单个.java文件中不能有多个公共类/枚举。
<强> TrafficLightprj.java 强>
public class TrafficLightprj {
public static void main(String[] args) {
for(TrafficLight light: TrafficLight.values()){
System.out.println("The traffic light value is: " +light);
System.out.println("The duration of that trafic light value is: " +light.getDuration());
}
}
}
<强> TrafficLight.java 强>
public enum TrafficLight {
RED(1),
GREEN(2),
YELLOW(3);
private final int duration;
TrafficLight(int duration) {
this.duration = duration;
}
public int getDuration() {
return this.duration;
}
}
答案 2 :(得分:1)
当然,但您需要限定枚举类名称。 TrafficLightprj.TrafficLight
代替TrafficLight
。或者,我想,导入它。
我不是非私有嵌套类的忠实粉丝,并建议将枚举设为顶级。
答案 3 :(得分:0)
假设您的问题是:“如何在不同的源文件中获取nested enum?”
这可以用于部分类,但是isn't supported in java。