本文介绍: 泛型是JAVA语言中一种增强类型安全性机制,它允许程序员在类,接口方法使用类型参数以便编译时进行类型检查,并在运行生成正确代码泛型的主要目的是提高代码的可重用性和可读性,同时减少类型转换错误
什么泛型
泛型是JAVA语言中一种增强类型安全性的机制,它允许程序员在类,接口方法使用类型参数以便编译时进行类型检查,并在运行生成正确代码泛型的主要目的是提高代码的可重用性和可读性,同时减少类型转换错误
泛型和Object类型的区别

泛型和Object类型的主要区别在于类型安全性、代码重用性和可读性,以及在编译时和运行时的行为

1. 类型安全性:泛型提供了编译时类型检查可以在编译阶段捕获类型错误,提高程序的安全性。使用泛型,可以在编译时指定操作对象类型,并在编译器强制类型检查。而使用Object,则会失去编译器对类型的检查需要运行时进行类型转换,并存在类型转换错误风险。
2. 代码重用性和可读性:通过使用泛型,可以编写通用的代码,可以不同类型之间重用,提高代码的可维护性和可读性。而如果直接使用Object需要手动进行类型转换,代码可读性和重用性会相对较差。使用泛型可以避免在操作对象时进行强制类型转换提高代码的简洁性和可维护性。
3. 运行行为:Object本身是一个所有类的父类可以强制类型转换,但可能存在类型不匹配问题。泛型在虚拟机中会被擦除掉具体类型信息,因为泛型是在编译时进行类型检查的,所以不会出现类型不匹配问题
泛型插除

泛型信息存在于代码编译阶段,在进入JVM之前,与泛型相关信息会被擦除掉。

例子方法重载

public void test(List<Integer> list){
    
}

public void test(List<String> list){
    
}

上述编译不会通过我们知道同一个类中方法相同参数列表不同(参数类型,参数个数)才称作为重载上述方法方法相同参数个数相同,如果能编译通过说明上述参数类型是不同的,但实际是编译不会通过,编译的时候会将泛型直接擦除,属于同一个方法

原文地址:https://blog.csdn.net/xiarufeng/article/details/134762057

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_40496.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注