You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 20:24:02