Java编程经验——怎样创建泛型数组

 时间:2024-10-28 01:43:47

1、首先看这个泛型:public class TestGenericArray <E>{ private E[]elements; private int size=0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public TestGenericArray(){ elements=new E[DEFAULT_INITIAL_CAPACITY]; } public E pop(){ if(size==0){ throw new EmptyStackException(); } E reslut=elements[--size]; elements[size]=null; return reslut; }}在new E[DEFAULT_INITIAL_CAPACITY];这一行会有编译错误,告诉你不能创建泛型数组。具体见下图。

Java编程经验——怎样创建泛型数组

3、另外一种能够消除创建泛型数组错误的是声明数组域时,直接声明为Object类型的数组,当获取数组元素时把对应的元素转换为E泛型类型。public class TestGenericArray <E>{ private Object[]elements; private int size=0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public TestGenericArray(){ elements=new Object[DEFAULT_INITIAL_CAPACITY]; } public E pop(){ if(size==0){ throw new EmptyStackException(); } E reslut=(E)elements[--size]; elements[size]=null; return reslut; }}第二种方法的重点在数组声明和获取元素上面。但是这种做法会有警告,见下图。同上面的方法一样,同样提示的是未受检的类型转换问题。可以通过@SuppressWarning注解取消警告,但是要在尽可能小的范围禁止,否则编译器能做的正常检测也会被禁止,通常不要在类上加该注解。加注解后的代码见图2.

Java编程经验——怎样创建泛型数组

4、综合两种方法,其实本质上都没有创建泛型数组,java也不允许这样做。只是通过创建Object数组然后转化为泛型类型而已。方法一是一次性转换整个数组,而方法二是每次取数组元素时才进行转换,实际上都是相同的处理。

  • 嫦娥怎么兑换
  • 饥荒春季boss怎么打 饥荒麋鹿鹅怎么打
  • 饥荒怎么复活队友
  • 背阔肌外侧怎么练,练背阔肌外侧要注意什么
  • 饥荒怎么删除物品
  • 热门搜索
    旅游介绍 北京旅游网官网 芜湖旅游景点 四川旅游学院官网 青海省旅游 新疆旅游报价 北京郊区旅游 大阪旅游 杭州旅游攻略三日游 舟山群岛旅游