java反射接口所有继承接口,java 枚举反射获得所有枚举定义,java反射枚举定义,首先定义一个接口,该接口...

java 枚举反射获得所有枚举定义,java反射枚举定义,首先定义一个接口,该接口

首先定义一个接口,该接口用来暴露枚举的name和value, 然后枚举从此接口继承。

NameValueEnumUtils 提供静态方法getNameValues获得枚举的值public abstract class NameValueEnumUtils { public static NameValue[] getNameValues(@SuppressWarnings("rawtypes") Class clazz) { if (!clazz.isEnum()) { throw new RuntimeException("NameValueEnumUtils can only service for enum"); } Object[] nvs = clazz.getEnumConstants(); NameValue[] result = new NameValue[nvs.length]; int i=0; for (Object obj : nvs) { result[i++] = (NameValue)obj; } return result; }}

NameValue是枚举需要实现的接口:public interface NameValue { int getValue(); String getName();}

枚举示例:public enum CheckType implements NameValue { PROCESS("进程", 1), CPU("CPU", 2), MEMORY("内存", 3), DATABASE("数据库", 4), PORT("端口", 5), REDIS("REDIS", 6), MQ("MQ", 7), DNS("DNS", 8), HTTP("HTTP", 9); private String typeName; private int typeValue; private CheckType(String name, int val) { this.typeName = name; this.typeValue = val; } public int getValue() { return this.typeValue; } public String getName() { return this.typeName; }}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值