定義されている列挙型に javac がメソッドをvalues()
追加するのはなぜですか? valueOf(String)
Enum クラス自体に追加したほうがよかったのではないでしょうか?
つまり、次のような列挙型がある場合
enum FooEnum {ONE, TWO}
javac は、コンパイル時にvalues()
andvalueOf(String)
を追加します。FooEnum
少し奇妙だと思います。この背後にある理由は何ですか?
返された値の型の安全性を確保するためだけですか、それとも他に何かありますか? 型安全性だけが目的なら、ジェネリックは役に立ちませんか?