从类中获取枚举实例<? extends Enum&gt;使用String值?

编程入门 行业动态 更新时间:2024-10-23 19:30:26
本文介绍了从类中获取枚举实例<? extends Enum&gt;使用String值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我发现很难把确切的问题写入文字,所以我只举一个例子。

I'm finding it difficult to put the exact question into words, so I'll just give an example.

我有两个枚举类型:

enum Shape { CAT, DOG; } enum Color { BLUE, RED; }

我有一个方法:

public Object getInstance(String value, Class<?> type);

我想使用以下方法:

// someValue is probably "RED", and someEnumClass is probably Color.class Color c = getInstance(someValue, someEnumClass);

我一直无法确定如何实现 getInstance / code>。一旦你知道要实例化的确切 Enum 类,就很容易:

I've been having trouble determining exactly how to implement getInstance(). Once you know the exact Enum class that you want to instantiate, it's easy:

Color.valueOf("RED");

但是上面这行如何用未知的 c $ c>? (但是,已知 someEnumClass 是 Enum 的子类。)

But how can this above line be accomplished with an unknown Class? (It is, however, known that the someEnumClass is a subclass of Enum.)

感谢!

推荐答案

public static <T extends Enum<T>> T getInstance(final String value, final Class<T> enumClass) { return Enum.valueOf(enumClass, value); }

并且方法用作:

final Shape shape = getInstance("CAT", Shape.class);

再次,您可以随时使用

final Shape shape = Shape.valueOf("CAT");

这是

Enum.valueOf(Shape.class, "CAT");

更多推荐

从类中获取枚举实例<? extends Enum&gt;使用String值?

本文发布于:2023-11-11 06:59:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1577702.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:类中   实例   lt   extends   String

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!