用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


还能输入: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、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

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

加载中,请稍后...