Class型と文字列から対応するenum値を取得するには？

[code]

    public enum MyEnum {
        HOGE,
        FUGA;
    }
    
[/code]

下記のClass<?>とStringからMyEnum.HOGEを取得するにはどうすれば良いでしょうか？  
またClass<?>型(cl)からenum値すべて列挙可能でしょうか？

[code]

    class<?> cl = MyEnum.class;
    String value = "HOGE";
    
[/code]




[`Class#getEnumConstants()`](http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#getEnumConstants--)で列挙型の定数一覧を取得できます。

[code]

    Class<?> cl = MyEnum.class;
    String value = "HOGE";
    
    for (Object o: cl.getEnumConstants()) {
      if (o.toString().equals(value)) {
        System.out.println(String.format("%s:%s", o.getClass(), o));
        // class MyEnum:HOGE
        System.out.println(o.equals(MyEnum.HOGE));
        // true
      }
    }
    
[/code]




[`Class#getEnumConstants()`](http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#getEnumConstants--)で列挙型の定数一覧を取得できます。

[code]

    Class<?> cl = MyEnum.class;
    String value = "HOGE";
    
    for (Object o: cl.getEnumConstants()) {
      if (o.toString().equals(value)) {
        System.out.println(String.format("%s:%s", o.getClass(), o));
        // class MyEnum:HOGE
        System.out.println(o.equals(MyEnum.HOGE));
        // true
      }
    }
    
[/code]

