public class Temperature {
private int id;
private Type type;
private int temperature;
public Temperature(int id, int temp, Type t) {
this.id = id;
this.type = t;
this.temperature = temp;
}
}
public enum Type {
CELSIUS("C"), FAHRENHEIT("F");
private String type;
private Type(String t) {
this.type = t;
}
}
public class main {
public static void main(String[] args) {
Temperature t = new Temperature(1, 36, Type.CELSIUS);
}
}
以下是三个单独的文件,包括Temperature.java,Type.java和Main.java,但是如果在Temperature.java中声明了枚举类型,那么当我在main.java中初始化温度对象时会出错,为什么那?如果我们使用这3个单独的文件,则没有错误。
答案 0 :(得分:1)
如果枚举是里面的温度,那么它的完全限定名称是Temperature.Type
。即,Temperature.Type.CELSIUS
和Temperature.Type.FAHRENHEIT
如,
如果温度如下:
package containingPackage;
public class Temperature {
private int id;
private Type type;
private int temperature;
public Temperature(int id, int temp, Type t) {
this.id = id;
this.type = t;
this.temperature = temp;
}
enum Type {
CELSIUS("C"), FAHRENHEIT("F");
private String type;
private Type(String t) {
this.type = t;
}
}
}
然后要使用枚举,必须在其前面加上温度类名称:
Temperature t = new Temperature(1,36, Temperature.Type.CELSIUS);
您可以通过完全导入枚举来解决这个问题:
import containingPackage.Temperature.Type;