[Java] 泛型 →→→→→进入此内容的聊天室

来自 , 2021-01-21, 写在 Java, 查看 145 次.
URL http://www.code666.cn/view/d2ed45a5
  1. package c.cn.itcast.generic;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8.  
  9. import org.junit.Test;
  10.  
  11. /**
  12.  * 泛型 出现的原因: 集合处理 数据类型 任意 1: 数据安全 2: 模板 泛型写法 <对象类型> 结合集合一起使用 编译错误提前 运行错误 .class
  13.  * 编译时错误 .java 编译生成.class <> 擦除
  14.  *
  15.  * @author Administrator
  16.  *
  17.  */
  18. public class GenericDemo1 {
  19.         // @Test
  20.         public void test() {
  21.                 // 指定集合容器存储数据类型
  22.                 List<Integer> list = new ArrayList<Integer>();
  23.                 // 集合list 只能存放 整型数据
  24.                 list.add(1);
  25.                 list.add(2);
  26.                 list.add(3);
  27.                 // 集合遍历 获取
  28.                 print(list);
  29.  
  30.                 // double 类型
  31.                 List<Double> list1 = new ArrayList<Double>();
  32.                 // 集合list 只能存放 整型数据
  33.                 list1.add(1.2);
  34.                 list1.add(233.3);
  35.                 list1.add(3.3);
  36.                 print(list1);
  37.         }
  38.  
  39.         // 为什么报错? 1: ? 通配符 通用性的泛型方法 目标 通用性方法 可以打印任意类型的集合
  40.         // 2: 自定义泛型方法 方法的返回类型前 添加<T> template E element Map <K,V> key value
  41.         // 泛型方法 通用性
  42.  
  43.         // <A> 方法返回值之前
  44.         public <T> void print(List<T> list) {
  45.                 System.out.println(list);
  46.         }
  47.  
  48.         /**
  49.          * 数组交换 int double String 通用性的方法 接受任意类型
  50.          */
  51.         // @Test
  52.         public void test2() {
  53.                 Integer[] arr = { 1, 2 };
  54.                 String arr1[] = { "a", "b" };
  55.                 change(arr);
  56.                 System.out.println(Arrays.toString(arr));
  57.         }
  58.  
  59.         private <T> void change(T[] arr) {
  60.                 T temp = arr[0];
  61.                 arr[0] = arr[1];
  62.                 arr[1] = temp;
  63.         }
  64.  
  65.         @Test
  66.         public void test3() {
  67.                 // 测试泛型类模板
  68.                 Map<String, String> map = new HashMap<String, String>();
  69.                 Generic<String> g = new Generic<String>("hello");
  70.                 String s = g.getT();
  71.                 System.out.println(s);
  72.         }
  73.  
  74.         // public void print(List<?> list) {
  75.         // for (int i = 0; i < list.size(); i++) {
  76.         // Object a = list.get(i);
  77.         // System.out.println(a);
  78.         // }
  79.         // }
  80.  
  81.         // public void print1(List<Integer> list) {
  82.         // for (int i = 0; i < list.size(); i++) {
  83.         // int a = list.get(i);
  84.         // System.out.println(a);
  85.         // }
  86.         // }
  87. }
  88.  

回复 "泛型"

这儿你可以回复上面这条便签

captcha