问题

假设定义了如下的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相关推荐

  1. 如何在Java中将String转换为int

    在本教程中,我们将看到将Java中的String转换为int(或Integer)的各种方法. 您可以使用以下任何一种方式: –使用Integer.parseInt(string) –使用Integer ...

  2. string转换为bigdecimal_java如何将String转换为Int

    Java 必知必会 第 1 篇(精挑 Stack Overflow在java中排名前100的问题懂得这些问题的答案帮你解决80%开发问题 )问题: java如何将String转换为Int    答案: ...

  3. 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 ...

  4. 如何在Java中将String转换为int?

    如何在Java中将String转换为int ? 我的字符串仅包含数字,我想返回它代表的数字. 例如,给定字符串"1234" ,结果应为数字1234 . #1楼 好吧,要考虑的一个非 ...

  5. 2个在Java中将Byte []数组转换为String的示例

    将字节数组转换为String似乎很容易,但是很难做到正确. 每当字节转换为String或char时,许多程序员都会犯忽略字符编码的错误,反之亦然. 作为程序员,我们都知道计算机只能理解二进制数据,即0 ...

  6. android double转string_如何使用Java程序将Double转换为String

    在Java中将String转换为Double 至少有三种方法可以将表示double值的String 转换为Double对象.可能还有多种方法可以做同样的事情,如果你了解此处还有未列出的其他转换方法,请 ...

  7. 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 ...

  8. java 字符串 转double_如何使用Java程序将Double转换为String

    在Java中将String转换为Double 至少有三种方法可以将表示double值的String 转换为Double对象.可能还有多种方法可以做同样的事情,如果你了解此处还有未列出的其他转换方法,请 ...

  9. JAVA 利用SimpleDateFormat将String转换为格式化的日期

    1. /*** 使用用户格式提取字符串日期** @param strDate 日期字符串* @param pattern 日期格式* @return*/public static Date parse ...

最新文章

  1. java 清空控制台_利用原生库和JNI(Java原生接口)实现H2数据库漏洞利用
  2. Python实现获得SQLServer数据库中的表插入到Oracle数据库
  3. 03 Android应用界面编程
  4. python 摄像头标定_python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
  5. VS2010 C++编译报错LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
  6. 景观连接度指数怎么算都是0的解决方案
  7. linux下图片加密原理,Linux中常见的加密技术介绍
  8. 查看邮箱号是否存在_腾讯企业邮箱--新版本
  9. uva 11021 Tribles
  10. 查询hdfs的相对路径
  11. [转载] Ajax中使用Response.Write输出javascript脚本出错的解决办法
  12. @Autowired实现的原理
  13. Tushare股票数据全生命周期MACD等指标动态获取计算-前复权
  14. mysql my.cnf位置_我如何找到MySQL my.cnf位置
  15. win10时间不准_【装机教程】超详细WIN10系统安装教程,官方ISO直装与PE两种方法教程...
  16. 成功蹭到iPhone 12热点,杜蕾斯再上热搜,关联公司却因小黄文广告被罚
  17. 浅谈Linux USB设备驱动
  18. Windows文件服务器文件审计,文件监控软件,File_System_Auditor2.53安装教程
  19. 联想家悦微型计算机,联想家悦台式电脑拆机知识分享
  20. 5G NR学习理解系列——时频结构及相关概念

热门文章

  1. Java BigDecimal restder()方法与示例
  2. 使用Linux命令行归档文件
  3. 计算机工作对身体有害吗,在电脑前长时间工作会对身体有害处吗?
  4. js手机号中间四位_11位手机号码隐藏中间四位数,学会Substitute函数一键搞定!...
  5. java最接近对点及距离_最接近点对问题_分治法
  6. python中八进制_在Python中以八进制格式输入数字
  7. puppeteer执行js_使用Node.js和Puppeteer与表单和网页进行交互– 1
  8. Java生成随机数的4种方式,以后就用它了!
  9. MySQL 索引的面试题总结
  10. Redis 中的过期元素是如何被处理的?「视频版」——面试突击 002 期