温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java泛型数组转换类型的示例分析

发布时间:2021-05-02 16:28:29 来源:亿速云 阅读:214 作者:小新 栏目:编程语言

小编给大家分享一下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<T> {
 
    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<People> peopleGenericArray = new GenericArray<People>(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泛型数组转换类型的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI