コアJavaでは、抽象クラスjava.lang.Enum
はすべてのJava列挙型の基本クラスです。我々はすべて知っているように、また、表示されません頻繁に使用される方法public static <T extends Enum<T>> T valueOf(String name)
、そこにある、enumのvalueOf(String name)メソッドが抽象クラスjava.lang.Enumで定義されていないのはなぜですか?
public final String name()
public final int ordinal()
public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
しかし次のようないくつかの一般的な方法があります。 Java APIのdocs-https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.htmlにはまったくありません。誰でもこれを説明できますか?
まず、タイプの消去とは、そのタイプのメソッドが返すタイプを知る方法がないことを意味します。 –
@OliverCharlesworthしかし、 'Enum> T valueOf(文字列名)は実際には問題なしで –
Rui
の形式では動作しませんが、静的メソッドに委譲する非静的なバージョンが便利です。 – karakfa