testgenericmethod.java

来自「疯狂Java讲义_源码(含Java设计模式CHM」· Java 代码 · 共 52 行

JAVA
52
字号

import java.util.*;
/**
 * Description:
 * <br/>Copyright (C), 2005-2008, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee kongyeeku@163.com
 * @version  1.0
 */

public class TestGenericMethod
{
	//声明一个泛型方法,该泛型方法中带一个T形参,
	static <T> void fromArrayToCollection(T[] a, Collection<T> c)
	{
		for (T o : a)
		{
			c.add(o);
		}
	}
	public static void main(String[] args) 
	{
		Object[] oa = new Object[100];
		Collection<Object> co = new ArrayList<Object>();
		//下面代码中T代表Object类型
		fromArrayToCollection(oa, co);
		String[] sa = new String[100];
		Collection<String> cs = new ArrayList<String>();
		//下面代码中T代表String类型
		fromArrayToCollection(sa, cs);
		//下面代码中T代表Object类型
		fromArrayToCollection(sa, co);
		Integer[] ia = new Integer[100];
		Float[] fa = new Float[100];
		Number[] na = new Number[100];
		Collection<Number> cn = new ArrayList<Number>(); 
		//下面代码中T代表Number类型
		fromArrayToCollection(ia, cn);
		//下面代码中T代表Number类型
		fromArrayToCollection(fa, cn); 
		//下面代码中T代表Number类型
		fromArrayToCollection(na, cn);
		//下面代码中T代表String类型
		fromArrayToCollection(na, co);
		//下面代码中T代表String类型,但na是一个Number数组,
		//因为Number既不是String类型,也不是它的子类,所以出现编译错误
		fromArrayToCollection(na, cs);
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?