java-泛型-3

package 泛型;

import java.util.*;


/**
 * 泛型的高级使用 
 * 1.泛型的继承或接口,用extends在<>里面实现 
 * 2.语法:A<T extends anyClass>a;这里的泛型T必须是anyClass的子类 
 * eg:Demo <T extends list>{} 这里的T可以使是ArrayList 或者
 * LinkedList 或者不写 但是不能为HashSet等 因为HashSet不是list的子类
 * 
 * 泛型通配符
 *  1.说明:限制泛型的类型,并且限制泛型对象的使用,不能在类的建立的时候就用
 *   类名<?>{}这样就是错的 
 *   类名<T>{}正确 
 *  2.语法: A<?> a;泛型的通配符,不可以对对象进项添加和修改,但是可以删除,也能读取
 * A<? extends anyClass> a; 泛型必须是anyClass的子类,且此对象不能增加和改写的操作 
 * A<? super anyClass> a;泛型必须是anyClass的父类
 * 
 *
 * @author 小虎牙
 *
 */
public class fanxing2 {
	public static void main(String[] args) {
		
		
		// 第一种情况 A<?> a;
		
		
		
		List<String> li = new ArrayList<>();
		li.add("我有一个梦");

		List<?> l2 = li;
		System.out.println(li.get(0));
		System.out.println("我是第一情况的通配符只能读取:" + l2.get(0));
		/**
		 * 这里使用添加修改就失败了
		 * l2.set(1, "我要添加或者修改");
		 */
		/**
		 * 这里删除就成功啦
		 */
		l2.remove(0);
		System.out.println("这里是li大小:"+li.size());
		System.out.println("这里是l2大小:" + l2.size());
		
		/**
		 * 第二种情况 List<? extends 类名A> a=new arrayList<类名A或者是他的子类>();
		 * 且此对象不能增加和改写的操作
		 */
		
		// 第三种情况 List<? super 类名A> a=new arrayList<类名A或者是他的父类>();
		
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码浪人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值