java如何将String转换为enum
问题
假设定义了如下的enum(枚举):
public enum Blah {A, B, C, D
}
已知枚举对应的String值,希望得到对应的枚举值。例如,已知"A",希望得到对应的枚举——Blah.A,应该怎么做?
Enum.valueOf()是否能实现以上目的,如果是,那我如何使用?
答案
是的,Blah.valueOf(“A”) 将会得到 Blah.A
静态方法valueOf() 和 values() 不存在于源码中,而是在编译时创建,我们也可以在JavaDoc查看到它们,比如 Dialog.ModalityTyp 就中出现这两个方法。
其他答案
当文本和枚举值不同时,可以采用这种方式:
public enum Blah {A("text1"),B("text2"),C("text3"),D("text4");private String text;Blah(String text) {this.text = text;}public String getText() {return this.text;}public static Blah fromString(String text) {for (Blah b : Blah.values()) {if (b.text.equalsIgnoreCase(text)) {return b;}}return null;}
}
fromString方法中,throw new IllegalArgumentException(“No constant with text " + text + " found”) 会比直接返回null更优秀.
其他答案
我有一个挺赞的工具方法:
/*** A common method for all enums since they can't have another base class* @param <T> Enum type* @param c enum type. All enums must be all caps.* @param string case insensitive* @return corresponding enum, or null*/
public static <T extends Enum<T>> T getEnumFromString(Class<T> c, String string) {if( c != null && string != null ) {try {return Enum.valueOf(c, string.trim().toUpperCase());} catch(IllegalArgumentException ex) {}}return null;
}
你可以这么使用:
public static MyEnum fromString(String name) {return getEnumFromString(MyEnum.class, name);
}
java如何将String转换为enum相关推荐
- 如何在Java中将String转换为int
在本教程中,我们将看到将Java中的String转换为int(或Integer)的各种方法. 您可以使用以下任何一种方式: –使用Integer.parseInt(string) –使用Integer ...
- string转换为bigdecimal_java如何将String转换为Int
Java 必知必会 第 1 篇(精挑 Stack Overflow在java中排名前100的问题懂得这些问题的答案帮你解决80%开发问题 )问题: java如何将String转换为Int 答案: ...
- Java String到int,Java int到String
Today we will look at Java String to int conversion and then java int to String conversion. Java pro ...
- 如何在Java中将String转换为int?
如何在Java中将String转换为int ? 我的字符串仅包含数字,我想返回它代表的数字. 例如,给定字符串"1234" ,结果应为数字1234 . #1楼 好吧,要考虑的一个非 ...
- 2个在Java中将Byte []数组转换为String的示例
将字节数组转换为String似乎很容易,但是很难做到正确. 每当字节转换为String或char时,许多程序员都会犯忽略字符编码的错误,反之亦然. 作为程序员,我们都知道计算机只能理解二进制数据,即0 ...
- android double转string_如何使用Java程序将Double转换为String
在Java中将String转换为Double 至少有三种方法可以将表示double值的String 转换为Double对象.可能还有多种方法可以做同样的事情,如果你了解此处还有未列出的其他转换方法,请 ...
- Java char转换为String,String转换为char数组
Today we will look into java char to String program. We will also learn how to convert String to a c ...
- java 字符串 转double_如何使用Java程序将Double转换为String
在Java中将String转换为Double 至少有三种方法可以将表示double值的String 转换为Double对象.可能还有多种方法可以做同样的事情,如果你了解此处还有未列出的其他转换方法,请 ...
- JAVA 利用SimpleDateFormat将String转换为格式化的日期
1. /*** 使用用户格式提取字符串日期** @param strDate 日期字符串* @param pattern 日期格式* @return*/public static Date parse ...
最新文章
- java 清空控制台_利用原生库和JNI(Java原生接口)实现H2数据库漏洞利用
- Python实现获得SQLServer数据库中的表插入到Oracle数据库
- 03 Android应用界面编程
- python 摄像头标定_python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
- VS2010 C++编译报错LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 景观连接度指数怎么算都是0的解决方案
- linux下图片加密原理,Linux中常见的加密技术介绍
- 查看邮箱号是否存在_腾讯企业邮箱--新版本
- uva 11021 Tribles
- 查询hdfs的相对路径
- [转载] Ajax中使用Response.Write输出javascript脚本出错的解决办法
- @Autowired实现的原理
- Tushare股票数据全生命周期MACD等指标动态获取计算-前复权
- mysql my.cnf位置_我如何找到MySQL my.cnf位置
- win10时间不准_【装机教程】超详细WIN10系统安装教程,官方ISO直装与PE两种方法教程...
- 成功蹭到iPhone 12热点,杜蕾斯再上热搜,关联公司却因小黄文广告被罚
- 浅谈Linux USB设备驱动
- Windows文件服务器文件审计,文件监控软件,File_System_Auditor2.53安装教程
- 联想家悦微型计算机,联想家悦台式电脑拆机知识分享
- 5G NR学习理解系列——时频结构及相关概念
热门文章
- Java BigDecimal restder()方法与示例
- 使用Linux命令行归档文件
- 计算机工作对身体有害吗,在电脑前长时间工作会对身体有害处吗?
- js手机号中间四位_11位手机号码隐藏中间四位数,学会Substitute函数一键搞定!...
- java最接近对点及距离_最接近点对问题_分治法
- python中八进制_在Python中以八进制格式输入数字
- puppeteer执行js_使用Node.js和Puppeteer与表单和网页进行交互– 1
- Java生成随机数的4种方式,以后就用它了!
- MySQL 索引的面试题总结
- Redis 中的过期元素是如何被处理的?「视频版」——面试突击 002 期