根据名称获取枚举值
public static <T> T getEnum(Class<T> clazz, String name){
T[] enumConstants = clazz.getEnumConstants();
for(T _enum : enumConstants){
if(_enum.toString().toLowerCase().equals(name.toLowerCase())){
return _enum;
}
}
return null;
}
一开始不知道Class已经泛型化了,只能这么写:
public static <T> T getEnum(T t, String name){
T[] enumConstants = (T[]) t.getClass().getEnumConstants();
for(T _enum : enumConstants){
if(_enum.toString().toLowerCase().equals(name.toLowerCase())){
return _enum;
}
}
return null;
}
使用的时候需要传一个枚举进来,有了Class的泛型化就更简单了。
5-12:
原来还有更简单的API:
Enum.valueOf(Class<T> enumType, String name)
当然大小写需要自己处理一下.
分享到:
相关推荐
4. **通过名称获取枚举实例**:如果已知枚举的名称,可以使用`valueOf()`方法获取对应的枚举实例。 ```java Color colorFromName = colorClass.valueOf("RED"); // 获取到RED枚举实例 ``` 5. **枚举的构造函数**:...
枚举参数与对象类型进行比较,判断是否属于同一类型
2. **根据名称获取枚举值**:使用`valueOf()`方法,传入枚举实例的名字来获取对应的枚举实例。 ```java public class TestTrafficLamp { public static void main(String[] args) { // 获取所有的枚举值 for ...
在某些场景下,我们需要获取枚举的属性值,比如描述信息,以便更好地展示给用户。本文将详细介绍如何使用反射(Reflection)来实现这一功能,并将其绑定到UI控件上。 首先,我们来看一下如何定义一个带有描述属性的...
* 枚举可以使用valueOf()方法来根据名称获取枚举的常量。 枚举的使用 枚举可以用于各种场景,例如: * 定义一组固定的常量。 * 实现单例模式。 * 实现策略模式。 注解 注解是 Java 语言中的一种元数据,用于...
这样,我们就可以方便地通过枚举的名称获取枚举实例: ```java public class EnumUtil { public static Map, Color> getEnumDict(Color[] enums) { Map, Color> dict = new HashMap(); for (Color color : enums...
- 也可以通过`valueOf()`方法根据名称获取枚举常量,例如`Belle.valueOf("para1")`。 5. **枚举成员方法**: - 枚举类型中的成员方法可以是抽象的,每个枚举常量需要实现这个方法。例如: ```java public enum ...
枚举为我看日常开发的可读性提供的非常好的支持,但是有时在使用枚举类型时,我们需要取名称和值,甚至有时候还需要取枚举类型的描述。通过反射,我们能获取到枚举类型的描述属性。 首先我们需要给枚举类型添加描述...
枚举类的每个元素都是该类的实例,可以通过values()获取所有枚举值,valueOf()根据名称获取枚举值,name()返回枚举名称,ordinal()返回枚举值的索引。 3. **反射** - **Class类**:反射的核心是Class类,它代表...
通过枚举的name()方法可以获得枚举常量的名字,ordinal()返回其在枚举中的位置,而valueOf()可以根据名称获取枚举对象。 在JavaWeb的学习过程中,理解并熟练运用这些基础知识至关重要,因为它们构成了JavaWeb开发的...
- `valueOf(Class<T> type, String name)`:根据名称获取枚举常量。 - `values()`:返回枚举类的所有枚举值的数组。 8. **JDK7的新特性**: - **二进制字面量**:使用`0b`或`0B`前缀表示二进制整数,提高代码...
// 使用System.Enum.GetNames获取枚举的名称数组 string[] values = System.Enum.GetNames(enumType); // 计算数组长度,即枚举元素的个数 int enumCount = values.Length; Console.WriteLine($"枚举'{enum...
13. **枚举类的常量特定方法**:如`values()`和`valueOf()`,分别返回枚举类型的所有常量和根据名称获取枚举常量。 这些新特性和改进极大地增强了Java编程语言的功能和灵活性,使得Java 1.5成为了一个广泛采用的...
枚举系统字体名称是获取这些资源的一种方法,这对于开发需要展示不同字体效果的应用程序或者进行字体管理时非常有用。同时,显示网页图片是网页开发中的基本操作,它涉及到浏览器渲染、图像格式和网络传输等多个方面...
#region 获取枚举成员名称和成员值的键值对集合 /// /// 获取枚举成员名称和成员值的键值对集合 /// /// 枚举名,比如Enum1 public static Hashtable GetMemberKeyValue() { //创建哈希表 Hashtable ht = ...
关于串口名称获取,虽然OpenCV本身并不直接支持串口操作,但你可以结合其他库如`libserialport`或`Serial`来实现。在C++中,你首先需要安装相应的库,然后使用其API来枚举和打开串口。以下是一个使用`libserialport`...
"VC枚举串口(串口名)"这个标题指的是利用VC++(Visual C++)来查找并列举系统中可用的串行端口名称。在描述中提到的"EnumSerial"是一个自定义类,它被用来实现串口的枚举功能,能够识别虚拟串口并且能够在串口号超过...
如果我们想要获取枚举成员的字符串名称,可以使用`Enum.GetName()`静态方法。该方法接收两个参数:枚举的类型和枚举的值。以下是如何使用它的示例: ```csharp object ojb = Enum.GetName(typeof(Test_Enum), ...
本文将详细阐述如何在VS2008 C++环境下,利用Win32 API来获取系统中的所有字体,并根据字体名称找到对应的字体文件名。 首先,我们需要理解Windows操作系统是如何管理字体的。在Windows系统中,字体通常存储在`C:\...