1.枚举项的数量建议不要超过64位
因为枚举数量小于等于64和大于64 利用EnumSet.noneOf产生的类不同,源码如下:
public static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType) {
Enum[] universe = getUniverse(elementType);
if (universe == null)
throw new ClassCastException(elementType + " not an enum");
if (universe.length <= 64)
return new RegularEnumSet<>(elementType, universe);
else
return new JumboEnumSet<>(elementType, universe);
}
RegularEnumSet是数字类型的操作,JumboEnumSet是数组操作
RegularEnumSet(Class<E>elementType, Enum[] universe) {
super(elementType, universe);
}
EnumSet(Class<E>elementType, Enum[] universe) {
this.elementType = elementType;
this.universe = universe;
}
JumboEnumSet(Class<E>elementType, Enum[] universe) {
super(elementType, universe);
elements = new long[(universe.length + 63) >>> 6];
}
2.JAVA的泛型编译类型擦除的
所以一下代码会报错
public void listMethon(List<String> arrString) {
}
public void listMethon(List<Integer> arrString) {
}
List<String> stringList = new ArrayList<String>();
List<Integer> integerList = new ArrayList<Integer>();
System.out.println("是否相等"+(stringList.getClass() == integerList.getClass()));
打印结果:是否相等true
instanceof不允许存在泛型参数
System.out.println(stringList instanceof List<String>);
这句会编译报错
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦