泛型

泛型

泛型是一种未知的数组类型,当我们不知道使用什么数据类型的时候,可以使用泛型	
将数据类型当做参数传递

泛型可以也可以看出是一个变量,用来接收数据类型
E e:Element元素  未知的类型
T t:Type类型

创建集合对象,不使用泛型:默认的类型就是Object类型,可以存储任何类型,但是不安全,会引发异常

泛型的方法

定义含有泛型的方法:泛型定义在方法的修饰符和返回值之间
	格式:
		修饰符 <泛型> 返回值类型 方法名(参数列表(使用泛型)){
		方法体;
		}
		//定义一个含有泛型的方法
		public <M> void method(M m){
			System.out.println(m);
		}
		//定义一个含有泛型的静态方法
		public static <S> void method(S s){
			System.out.println(s);
		} //静态方法不建议创建对象使用,通过类名.方法名(参数)可以直接使用
	含有泛型的方法,在调用方法的时候确定泛省的数据类型
	传递什么类型的参数,泛型就是什么类型

定义含有泛型的接口

	第一种使用方法;定义接口的实现类,实现接口,指定接口的泛型
	格式:
		修饰符 interface接口名<代表泛型的变量>{}
		public interface Iterator<E> {
			E next();
		}
	Scanner类实现了Iterator接口,并指定接口的泛型为String,所以重写next方法
	public final class Scanner implements Iterator<String>{
		public String next(){}
	}
	第二种方法:接口使用什么泛型,实现类使用什么泛型,类跟着接口走
	就相当于定义一个含有泛型的类,创建对象的时候确定泛型的类型
	格式:
		public interface List<E>{
			bolean add(E e);
			E get(int index);
		}
		public calss ArrayList<E> implements List<E>{
			public bolean add(E e);
			public E get(int index);
		}

定义含有泛型的的类

	格式:
		修饰符 class 类名<代表泛型的变量>{}
		class ArrayList<E>{
			public boolean add(E e){}
			public E get(int index){}
		}

泛型通配符

	当使用泛型类或者接口时,传递的数据中,泛型的类型不确定,可以通过通配符<?>表示,一旦使用通配符,只能使用Object类中的共性方法,集合中的元素自身的方法无法使用。
泛型通配符:
	?:代表任意的数据类型
使用方法:
	不能创建对象使用
	只能作为方法的参数传递
定义一个方法,能遍历所有类型的ArrayList集合,此事不知道集合使用的数据类型,可以使用通配符?来接收数据
	注意:
		泛型没有继承概念的
	public static void printArray(ArrayList<?> list){
        Iterator<?> it = list.iterator();//使用迭代器遍历集合
        while(it.hasNext()){
            Object o = it.next();
            System.out.println(o);
        }

    }
}

通配符的高级使用 – 受限泛型

泛型的上线:
	类型名称<? extents 类 > 对象名称
	意义:只能接收该类型及其子类
泛型的下线:
	类型名称 < ? super 类> 对象名称
	意义:只能接收该类及其父类类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值