您当前的位置: 首页 >  qq_34412985 Java

JAVA枚举操作(获取值,转map集合)

qq_34412985 发布时间:2019-05-15 18:24:24 ,浏览量:4

JAVA枚举相对来说比.NET的枚举功能强大,感觉就像是一种简化版的类对象,可以有构造方法,可以重载,可以继承接口等等,但不能继承类,JAVA枚举在实际开发中应用相当频繁,以下几个封装方法在实际开发中可能用到,希望对新手有些帮助。

首先,新建一个枚举接口,为保证所有继承此接口的枚举value及description一致,便于开发使用,枚举统一接口如下。


public interface EnumCommon {
    public int getValue();
    public String getDescription();
}

建立测试的枚举对象,此枚举继承上述接口,如下所示:

public enum TestEnum implements EnumCommon {
    AAA(1, "描述AAA"), BBB(2, "描述BBB"), CCC(3, "描述CCC"), DDD(4, "描述DDD") /*,EEEE8*/;
    private int value;  //枚举value字段
    private String description; //枚举描述字段
    @Override
    public int getValue() {
        return value;
    }
    @Override
    public String getDescription() {
        return description;
    }
    //private TestEnum() {}
    TestEnum(int value,String description){ //构造初始化赋值
        this.description=description;
        this.value=value;
    }
}

建立枚举时,如果存在没有value和description的枚举属性,必须要有无参构造方法,不定参数的要存在相应不定参数的构造方法。
接下来就到真正的工具方法了,首先一个公用方法,通过方法名称获取返回值,如下所示:


    /**
     * 根据反射,通过方法名称获取方法值,忽略大小写的
     * @param methodName
     * @param obj
     * @param args
     * @return return value
     */
    private static Object getMethodValue(String methodName, T obj,
            Object... args) {
        Object resut = "";
        // boolean isHas = false;
        try {
            /********************************* start *****************************************/
            Method[] methods = obj.getClass().getMethods(); //获取方法数组,这里只要共有的方法
            if (methods.length

关注
打赏
查看更多评论

qq_34412985

暂无认证

  • 4浏览

    0关注

    957博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录