我有两个分类在不同页面。
对象类:
public class Sensor {
Type type;
public static enum Type
{
PROX,SONAR,INF,CAMERA,TEMP;
}
public Sensor(Type type)
{
this.type=type;
}
public void TellIt()
{
switch(type)
{
case PROX:
System.out.println("The type of sensor is Proximity");
break;
case SONAR:
System.out.println("The type of sensor is Sonar");
break;
case INF:
System.out.println("The type of sensor is Infrared");
break;
case CAMERA:
System.out.println("The type of sensor is Camera");
break;
case TEMP:
System.out.println("The type of sensor is Temperature");
break;
}
}
public static void main(String[] args)
{
Sensor sun=new Sensor(Type.CAMERA);
sun.TellIt();
}
}
主要课程:
import Sensor.Type;
public class MainClass {
public static void main(String[] args)
{
Sensor sun=new Sensor(Type.SONAR);
sun.TellIt();
}
错误是两个,一个是Type无法解析,另一个是不能导入。我能做什么?我第一次使用枚举,但你看到了。
答案 0 :(得分:10)
enums
需要在包中声明import
语句才能工作,即无法从package-private(默认包)类中的类导入enums
。将枚举移动到包
import static my.package.Sensor.Type;
...
Sensor sun = new Sensor(Type.SONAR);
或者,您可以使用完全限定的enum
Sensor sun = new Sensor(Sensor.Type.SONAR);
没有import语句
答案 1 :(得分:2)
对于静态方式,在静态导入语句中给出正确的包结构
import static org.test.util.Sensor.Type;
import org.test.util.Sensor;
public class MainClass {
public static void main(String[] args) {
Sensor sun = new Sensor(Type.SONAR);
sun.TellIt();
}
}
答案 2 :(得分:2)
static关键字对枚举没有影响。使用外部类引用或在其自己的文件中创建枚举。