0

この列挙型を印刷しようとしています

 private enum Menu
        {
            Insert("Insert"), 
            Search("Search"), 
            Size("Size"), 
            Height("Height"), 
            Clear("Clear"),
            Inorder("Inorder"),
            Preorder("Preorder");

            private String description;

            Menu()
            {
                this.description = this.name();
            }

            Menu(String name)
            {
                this.description = description;
            }

            public String toString()
            {
                return description; 
            }
         }

これを使用して:

            Menu[] menu = Menu.values();
            for(Menu m: menu)
            {
                System.out.printf("%d) %s%n", m.ordinal() + 1, m);
            }

私の結果は次のとおりです。

Choose an option to complete
1) null
2) null
3) null
4) null
5) null
6) null
7) null

どうすればこれを修正できますか? 列挙型を使用するのはこれが初めてで、なぜこれが発生するのかを理解するのに苦労しています。

4

4 に答える 4

0

これはうまくいきます

    Menu[] menu = Menu.values();
    for(Menu m: menu)
    {
        System.out.printf("%d) %s%n", m.ordinal() + 1, m.name());
    }
于 2013-06-14T06:46:41.963 に答える
0

プラス

  • 空のコンストラクターを削除します。呼び出されることはありません。
  • そのような目的で toString() を使用しないでください。後で変更する場合、どこで使用されているかを追跡するのが難しくなります。デバッグ出力またはエラー メッセージにのみ toString を使用します。
于 2013-06-14T06:36:07.810 に答える