java泛型数组转换类型的示例分析
小编给大家分享一下java泛型数组转换类型的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
成都网站设计、成都网站建设的开发,更需要了解用户,从用户角度来建设网站,获得较好的用户体验。创新互联建站多年互联网经验,见的多,沟通容易、能帮助客户提出的运营建议。作为成都一家网络公司,打造的就是网站建设产品直销的概念。选择创新互联建站,不只是建站,我们把建站作为产品,不断的更新、完善,让每位来访用户感受到浩方产品的价值服务。
java基本数据类型有哪些
Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2、浮点类型,用来表示小数的数据类型。3、字符类型,字符类型的关键字是“char”。4、布尔类型,是表示逻辑值的基本数据类型。
1、转换说明
因为泛型,当取得数组中每个元素时People p = peopleGenericArray.get(0),不需要显式进行向下的强制类型转换。同样因为泛型,当获取数组对象时,并不会明确地向下转换类型,但是为什么运行时会发生类型匹配异常,这是因为没有先进行向上类型转换。总结:在泛型数组中发生的强制类型转换
2、实例
package hash; import sort.People; /** * Created with IntelliJ IDEA. * User: ASUS * Date: 14-9-12 * Time: 下午5:12 * To change this template use File | Settings | File Templates. */ public class GenericArray{ private final T[] items; public GenericArray(int size) { items = (T[]) new Object[size]; } public void put(int index, T t) { items[index] = t; } public T get(int index) { return items[index]; } public T[] getItems() { return items; } public static void main(String args[]) { GenericArray peopleGenericArray = new GenericArray (5); peopleGenericArray.put(0, new People(12, "12323")); peopleGenericArray.put(1, new People(12, "12323")); peopleGenericArray.put(2, new People(12, "12323")); peopleGenericArray.put(3, new People(12, "12323")); People p = peopleGenericArray.get(0); System.out.println(p); System.out.println("sddddddddddddddd"); try { People[] peoples = peopleGenericArray.getItems(); //这行代码会出现ClassCastException异常 for (People people : peoples) { System.out.println(people); } } catch (Exception e) { e.printStackTrace(); } try { Object[] objects = peopleGenericArray.getItems(); for (Object object : objects) { System.out.println(object); } } catch (Exception e) { e.printStackTrace(); } } }
泛型数组的类型信息会被擦除,且在运行的过程中数组的类型有且仅有Object[],如果我们强制转换成T[]类型的话,虽然在编译的时候不会有异常产生,但是运行时会有ClassCastException抛出。因为在程序运行过程中仅存在这Object[]类型的数组,所以类型转换过程中要使用Object[]。。。而不能使用People[],虽然编译过程不会出现错误。
看完了这篇文章,相信你对“java泛型数组转换类型的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
新闻标题:java泛型数组转换类型的示例分析
本文路径:http://scyanting.com/article/ipdiii.html