2

println() がこれを行うことに気付きましたが、printf() で動作させることができません。

次のスニペットでは、最初の 2 つの 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);
}
4

1 に答える 1

8

%dフォーマット指定子は、値enumに対して使用されない限り、型と互換性がありません。メソッド(フィールドを使用する)ordinalを呼び出すには、代わりに使用できますenum's toStringname%s

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

読み取り:列挙型

于 2013-09-19T10:34:50.210 に答える