Java学习---泛型(不完整)

本文介绍了Java泛型的基本概念、泛型类的特点以及如何限制泛型类型的使用。通过示例展示了泛型如何提高代码的扩展性和重用性,包括创建泛型类、泛型类的多重类型参数以及如何限定泛型类型为特定类或接口的子类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、泛型简介 JDK1.5以后引入

泛型可以在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的。
泛型的原理就是”类型的参数化“,即把类型看做参数。也就是说把所要操作的数据类型看做参数,就像方法的形式参数是运行时传递的值的占位符一样。
简单的说,类型变量扮演的角色就如同一个参数,它提供给编译器用来类型检查的信息。
泛型可以提高代码的扩展性和重用性。

示例:

public class GenClass <T>{
	private T obj;

	public GenClass (T obj){
		this.obj = obj;
	}
	public T getObj(){
		return obj;
	}
	public void setObj(T obj){
		this.obj = obj;
	}
}
class Cla<T>
{
	T a;
	public Cla(T a){
		this.a = a;
	}
	public T returndate(){
		return a;
	}
}

public class Test {
	public static void main(String[] args) {
		Cla<Integer> c1 = new Cla<Integer>(10);
		System.out.println(c1.returndate());
		Cla<String> c2 = new Cla<String>("zheng");
		System.out.println(c2.returndate());
	}
}

在这里插入图片描述

2、泛型类及特点

1.泛型的类型参数可以是泛型类
2.泛型类可以同时设置多个类型参数
3.泛型类可以继承泛型类
4.泛型类可以实现泛型接口


泛型的类型参数可以是泛型类:

class Cla<T>
{
	T a;
	public Cla(T a){
		this.a = a;
	}
	public T returndate(){
		return a;
	}
}

public class Test {
	public static void main(String[] args) {
		Cla<Cla<Integer>> c1 = new Cla<Cla<Integer>>(new Cla<Integer>(100));//泛型的类型参数可以是泛型类
		System.out.println(c1.returndate().returndate());
	}
}

在这里插入图片描述

3、限制泛型可用类型

在定义泛型类别时,默认在实例化泛型类的时候可以使用任何类型,但是如果想要限制使用泛型类型时,只能用某个特定类型或者是其子类型才能实例化该类型时,可以在定义类型时,使用extends关键字指定这个类型必须是继承某个类,或者实现某个接口。
当没有指定泛型继承的类型或接口时,默认使用extends Object,所以默认情况下任何类型都可以作为参数传入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值