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