// 反射获取枚举信息Class<Day> enumClass = Day.class;if(enumClass.isEnum()) {for(Field field : enumClass.getDeclaredFields()) {if(field.isEnumConstant()) { System.out.println("枚举常量: "+ field.getName()); } } } 枚举的底层
for (Field field : enumClass.getDeclaredFields()) { if (field.isEnumConstant()) { System.out.println("枚举常量: " + field.getName()); } } } 枚举的底层原理 枚举会被编译为继承java.lang.Enum的final类: // 反编译 Day.class public final class Day extends Enum<Day> { public static fin...
publicclassEnumDemo{publicstaticvoidmain(String[]args){process(DayOfWeek.MONDAY);// 输出 "处理枚举类型"process("Hello");// 输出 "处理默认类型"}/** * 处理参数 *@paramparam要处理的参数 */publicstaticvoidprocess(Objectparam){if(isEnum(param.getClass())){System.out.println("处理枚举类型");/...
publicclassMain{publicenumColor{RED,GREEN,BLUE}publicstaticvoidmain(String[]args){// 示例1:判断枚举类booleanresult1=isEnumClass(Color.class);System.out.println(result1);// 输出true// 示例2:判断非枚举类booleanresult2=isEnumClass(String.class);System.out.println(result2);// 输出false// 示例3...
publicstatic<TextendsEnum<T>>TvalueOf(Class<T>enumType,String name){Tresult=enumType.enumConstantDirectory().get(name);if(result!=null)returnresult;if(name==null)thrownewNullPointerException("Name is null");thrownewIllegalArgumentException("No enum constant "+enumType.getCanonicalName()+"."+...
EnumMap只能接收同一枚举类型的实例作为键值且不能为null,通过ordinal方法(声明枚举对象的顺序的索引)获取枚举key对应的数组下标。在使用上EnumMap和HashMap区别不大,只是key全部为枚举类型的实例,看下get方法:public V get(Object key) { // 保证key是枚举的实例 return (isValidKey(key) ? // 下...
enum可以进行静态导入包,静态导入包可以做到不用输入枚举类名.常量,可以直接使用常量。使用 enum和关键字可以做到静态导入包。 例子: importstaticcom.company.Color.*;publicclassEnumUse{publicstaticvoidmain(String[] args){ Color color=RED; } } 枚举的使用 ...
isEnum());//true //8、获取枚举变量的属性 System.out.println("编号,"+Week.MONDAY.getId()+",含义,"+Week.MONDAY.getMeaning()); } 4、向上转型 //9、向上转型Enum Enum e = Weekday.FRIDAY; 这个东西意义何在,有待研究。 5、部分方法源码介绍 (1)valueof public static <T extends Enum<T>>...
因为枚举类Enum已经重写了equals方法 代码语言:javascript 代码运行次数:0 运行 AI代码解释 /** * Returns true if the specified object is equal to this * enum constant. * * @param other the object to be compared for equality with this object. * @return true if the specified object is equal ...
全面解读Java中的枚举类型enum的使用 关于枚举 大多数地方写的枚举都是给一个枚举然后例子就开始switch,可是我想说,我代码里头来源的数据不太可能就是枚举,通常是字符串或数字,比如一个SQL我解析后首先判定SQL类型,通过截取SQL的token,截取出来可能是SELECT、DELETE、UPDATE、INSERT、ALTER等等,但是都是字符串,此时我想...