【发布时间】:2012-11-27 08:16:09
【问题描述】:
我在声明枚举时遇到问题。我要创建的是“DownloadType”的枚举,其中有 3 种下载类型(AUDIO、VIDEO、AUDIO_AND_VIDEO)。
我实现的代码如下:
private enum DownloadType {
AUDIO(0), VIDEO(1), AUDIO_AND_VIDEO(2);
private final int value;
private DownloadType(int value) {
this.value = value;
}
}
如果我像这样使用它,这会很好:
DownloadType.AUDIO_AND_VIDEO.value;
但是,我希望这样我就不必询问“价值”。我可能弄错了,但这是几个类在 Java 中的工作方式,例如 Font,例如设置字体样式,您使用:
Font.PLAIN
它返回一个 int 值,我们不使用:
Font.PLAIN.value
【问题讨论】:
-
除非你需要价值,否则你也可以简单地使用 DownloadType.AUDIO_AND_VIDEO,我错过了什么吗?
-
@Nambari If I System.out.println(DownloadType.AUDIO_AND_VIDEO) 它返回“AUDIO_AND_VIDEO”,这显然是“DownloadType”类型,而不是 int。
-
我认为你混淆了枚举的目的。为什么还需要整数?
-
因为我在想如果我想得到我可以使用的类型'if (downloadType == DownloadType.AUDIO){}',是不是不对?
-
打印对象时会调用
toString()方法。此外,PLAIN 是Font类中的常量,而不是枚举。