获取Enum类本身名称作为字符串返回的最佳实现方式
最佳实现方案
直接在枚举类内定义目标方法,调用Java原生的getSimpleName()获取类名即可,完整代码如下:
public enum Market { A, B, C; public String getEnumClassName() { return this.getClass().getSimpleName(); } }
方案优势
- 无第三方依赖,用JDK原生API实现,性能开销可以忽略
- 返回结果完全匹配需求,直接输出不带包名的枚举类名
Market - 可维护性强:如果后续修改枚举类的名称,方法返回值会自动同步,不需要修改硬编码内容
- 通用程度高:如果需要给所有枚举复用这个能力,可以单独封装成通用工具方法:
public class EnumUtils { public static <T extends Enum<T>> String getEnumClassName(T enumInstance) { return enumInstance.getClass().getSimpleName(); } }
注意避坑
- 不要使用
getName()方法,该方法会返回带包路径的全类名,不符合需求 - 不要硬编码返回固定字符串
"Market",后续修改枚举类名时容易漏改导致业务异常
内容的提问来源于stack exchange,提问作者adimoh
相关产品推荐
相关产品推荐

