Java:可以让printf显示枚举的名字吗?

时间:2013-09-19 10:33:43

标签: java enums printf

我注意到println()会这样做,但我无法在printf()中使用它。

在下面的代码片段中,前两个println给出RED和BLUE,然后printf崩溃。

class Jim {
public enum Colours  {BLUE, RED}
static Colours xx = Colours.RED;
public static void main(String[] args)  {
    Colours fred = Colours.BLUE;
    System.out.println(xx);
    System.out.println(fred);
    System.out.printf("%d, %d\n", fred, xx);
}

1 个答案:

答案 0 :(得分:6)

除非针对ordinal值使用,否则

%d格式说明符与enum类型不兼容。要调用enum's toString方法(使用name字段),您可以使用%s代替

System.out.printf("%s, %s%n", fred, xx);

阅读:Enum