泛型基础(二)

ListGenericFoo

package org.wp.generic;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class ListGenericFoo<T extends List> {
	private T[] fooArray;

	public T[] getFooArray() {
		return fooArray;
	}

	public void setFooArray(T[] fooArray) {
		this.fooArray = fooArray;
	}

	public static void main(String args[]) {
		ListGenericFoo<LinkedList> foo1 = new ListGenericFoo<LinkedList>();
		ListGenericFoo<ArrayList> foo2 = new ListGenericFoo<ArrayList>();

		LinkedList[] linkedList1 = new LinkedList[10];
		ArrayList[] arrayList = new ArrayList[10];

		foo1.setFooArray(linkedList1);
		foo2.setFooArray(arrayList);
	}
}

 

GenericFoo

package org.wp.generic;

import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;

public class GenericFoo<T> {
	private T foo;

	public T getFoo() {
		return foo;
	}

	public void setFoo(T foo) {
		this.foo = foo;
	}

	public static void main(String args[]) {
		GenericFoo<? extends List> foo = null;
		foo = new GenericFoo<LinkedList>();
		foo = new GenericFoo<ArrayList>();

		GenericFoo<? super List> foo1 = null;
		foo1 = new GenericFoo<Object>();
		foo1 = new GenericFoo<Collection>();

		GenericFoo<String> foo2 = new GenericFoo<String>();
		foo2.setFoo("hello world");
		// GenericFoo<?> 等价于 GenericFoo<? extends Object>
		GenericFoo<? extends Object> foo3 = foo2;

		System.out.println(foo3.getFoo());

		foo3.setFoo(null);
		System.out.println(foo3.getFoo());

		// 错误 foo3.setFoo("welcome");
	}
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值