java基础之泛型

java基础之泛型

1、泛型定义

//当实例化泛型类对象时,指明泛型的类型,对应的类中所有的泛型的位置,都变为实例化中指定的泛型的类型。

//如果我们自定义了泛型类,但是在实例化时没有使用,那么默认类型是Object类。

//继承泛型类或者泛型接口时,可以指明泛型的类型;如果不指明泛型类型,那么子类也需要在加上泛型类型

不能再static、try-Catch语句中使用泛型。

不允许向声明为通配符集合类中写入对象(除了null)。

public class Order<T> {
	private String orderName;
	private int orderId;
	private T t;
	List<T> list = new ArrayList<>();
	
	public void add(){
		list.add(t);
	}
	public String getOrderName() {
		return orderName;
	}
	public void setOrderName(String orderName) {
		this.orderName = orderName;
	}
	public int getOrderId() {
		return orderId;
	}
	public void setOrderId(int orderId) {
		this.orderId = orderId;
	}
	public T getT() {
		return t;
	}
	public void setT(T t) {
		this.t = t;
	}
	@Override
	public String toString() {
		return "Order [orderName=" + orderName + ", orderId=" + orderId
				+ ", t=" + t + ", list=" + list + "]";
	}		
}

2、泛型方法

//声明泛型方法:当通过对象调用泛型方法时,指明泛型方法的类型

	public <E> E getE(E e){
		return e;
	}
//实现数组到集合的复制
	public <E> List<E> fromArrayToCollection(E [] e , List<E> list){
		for(E e1: e){
			list.add(e1);
		}
		return list;
	}
/*
	 * 泛型与继承的关系:
	 * 若类A是类B的子类,那么List<A>就不是List<B>的子类
	 */

3、通配符

/*
	 * 通配符 ? :
	 * List<A> 、 List<B> .. 都是List<?>的子类
	 */
	@Test
	public void test5(){
		List<?> list = null;
		List<String> list1 = new ArrayList<>();
		List<Object> list2 = new ArrayList<>();
		list = list1;
		list = list2;
		//show(list1);
 	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值