怎样获取java枚举的名称_获取给定Enum值的Enum名称的Java

获取给定Enum值的Enum名称的Java

如何获得给定其值的Java Enumtypes的名称?

我已经写了一个特定的枚举types的代码,我可以使它更通用?

枚举types:

public enum Category { APPLE("3"), ORANGE("1"), GRAPE("GRAPE"), BANANA("Banana"); private final String identifier; /** * Constructor. * * @param identifier * - identfier. */ private Category(String identifier) { this.identifier = identifier; } /** * {@inheritDoc} */ public String toString() { return identifier; } public static String getEnumNameForValue(Object value){ Category[] values = Category.values(); String enumValue = null; for(Category eachValue : values) { enumValue =eachValue.toString(); if (enumValue.equals(value)) { return eachValue.name(); } } return enumValue; } }

您应该通过调用name()方法来replacegetEnumNameForValue 。

尝试下面的代码

public enum SalaryHeadMasterEnum { BASIC_PAY("basic pay"), MEDICAL_ALLOWANCE("Medical Allowance"); private String name; private SalaryHeadMasterEnum(String stringVal) { name=stringVal; } public String toString(){ return name; } public static String getEnumByString(String code){ for(SalaryHeadMasterEnum e : SalaryHeadMasterEnum.values()){ if(code == e.name) return e.name(); } return null; } }

现在你可以使用下面的代码来检索Enum by Value

SalaryHeadMasterEnum.getEnumByString("Basic Pay")

使用下面的代码来获得ENUM作为string

SalaryHeadMasterEnum.BASIC_PAY.name()

使用下面的代码来获取string值的枚举

SalaryHeadMasterEnum.BASIC_PAY.toString()

试试下面的代码

@Override public String toString() { return this.name(); }

这里是下面的代码,它将从枚举值返回枚举名称。

public enum Test { PLUS("Plus One"), MINUS("MinusTwo"), TIMES("MultiplyByFour"), DIVIDE( "DivideByZero"); private String operationName; private Test(final String operationName) { setOperationName(operationName); } public String getOperationName() { return operationName; } public void setOperationName(final String operationName) { this.operationName = operationName; } public static Test getOperationName(final String operationName) { for (Test oprname : Test.values()) { if (operationName.equals(oprname.toString())) { return oprname; } } return null; } @Override public String toString() { return operationName; } } public class Main { public static void main(String[] args) { Test test = Test.getOperationName("Plus One"); switch (test) { case PLUS: System.out.println("Plus....."); break; case MINUS: System.out.println("Minus....."); break; default: System.out.println("Nothing.."); break; } } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值