用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

泛型

2014-08-04 作者: jun举报

[java]代码库

package c.cn.itcast.generic;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.junit.Test;

/**
 * 泛型 出现的原因: 集合处理 数据类型 任意 1: 数据安全 2: 模板 泛型写法 <对象类型> 结合集合一起使用 编译错误提前 运行错误 .class
 * 编译时错误 .java 编译生成.class <> 擦除
 * 
 * @author Administrator
 * 
 */
public class GenericDemo1 {
	// @Test
	public void test() {
		// 指定集合容器存储数据类型
		List<Integer> list = new ArrayList<Integer>();
		// 集合list 只能存放 整型数据
		list.add(1);
		list.add(2);
		list.add(3);
		// 集合遍历 获取
		print(list);

		// double 类型
		List<Double> list1 = new ArrayList<Double>();
		// 集合list 只能存放 整型数据
		list1.add(1.2);
		list1.add(233.3);
		list1.add(3.3);
		print(list1);
	}

	// 为什么报错? 1: ? 通配符 通用性的泛型方法 目标 通用性方法 可以打印任意类型的集合
	// 2: 自定义泛型方法 方法的返回类型前 添加<T> template E element Map <K,V> key value
	// 泛型方法 通用性

	// <A> 方法返回值之前
	public <T> void print(List<T> list) {
		System.out.println(list);
	}

	/**
	 * 数组交换 int double String 通用性的方法 接受任意类型
	 */
	// @Test
	public void test2() {
		Integer[] arr = { 1, 2 };
		String arr1[] = { "a", "b" };
		change(arr);
		System.out.println(Arrays.toString(arr));
	}

	private <T> void change(T[] arr) {
		T temp = arr[0];
		arr[0] = arr[1];
		arr[1] = temp;
	}

	@Test
	public void test3() {
		// 测试泛型类模板
		Map<String, String> map = new HashMap<String, String>();
		Generic<String> g = new Generic<String>("hello");
		String s = g.getT();
		System.out.println(s);
	}

	// public void print(List<?> list) {
	// for (int i = 0; i < list.size(); i++) {
	// Object a = list.get(i);
	// System.out.println(a);
	// }
	// }

	// public void print1(List<Integer> list) {
	// for (int i = 0; i < list.size(); i++) {
	// int a = list.get(i);
	// System.out.println(a);
	// }
	// }
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...