• java之泛型


     1 /*
     2      * a. 泛型的好处
     3      *         提高安全性(将运行期的错误转换到编译期)
     4      *         省去强制类型转换的麻烦
     5      * b. 泛型基本使用
     6      *         <>中放的必须是引用数据类型
     7      * c.泛型使用的注意事项
     8      *         前后的泛型必须一致,或者后面的泛型可以省略不写(1.7新特性菱形泛型)
     9      */
    10     public static void main(String[] args) {
    11 
    12         ArrayList<Person> list = new ArrayList<Person>();
    13         list.add(new Person("张三", 19));
    14         list.add(new Person("李四", 20));
    15         Iterator<Person> it = list.iterator();
    16         while (it.hasNext()) {
    17             Person p = it.next();
    18             System.out.println(p.getName() + "..." + p.getAge()); //张三...19  李四...20
    19 
    20             //System.out.println(it.next().getName() + "..." + it.next().getAge()); 
    21             //张三...20  当使用next()方法的时候需要注意,不能直接用it.next()调用属性或方法,只能调用一次next()方法,否则就会造成数据错位
    22         }
    23     }
    24 
    25 ///////////////////////////////////////////////////////////////////////
    26 
    27 public class Demo3_Generic {
    28 
    29     public static void main(String[] args) {
    30 
    31     }
    32 
    33 }
    34 
    35 interface Inter<T>{
    36     public void show(T t);
    37 
    38 }
    39 
    40 class Deom implements Inter<String>{
    41                                          //第一种实现类加泛型,推荐用这种方法
    42     @Override
    43     public void show(String t) {
    44         System.out.println(t);
    45     }
    46     
    47 }
    48 
    49 class Demo2<T> implements Inter<T>{
    50                                         //第二种实现类加泛型,因为没有必要在类上加泛型
    51     @Override
    52     public void show(T t) {
    53         System.out.println(t);
    54     }
    55     
    56 }
    57 
    58 ////////////////////////////////////////////////////////////////////////////
    59 
    60 public class Demo4_Generic {
    61 
    62     /*
    63      * A: 泛型通配符<?>
    64      *     任意类型,如果没有明确,那么就是Object以及任意的Java类
    65      * B: ? extends E
    66      *     向下限定,E及其子类
    67      * C: ? super E
    68      *     向上限定,E及其父类
    69      */
    70     public static void main(String[] args) {
    71 
    72         //List<?> list = new ArrayList<String>();
    73         ArrayList<Person> list1 = new ArrayList<>();
    74         list1.add(new Person("张三", 23));
    75         list1.add(new Person("李四", 24));
    76         
    77         ArrayList<Worker> list2 = new ArrayList<>();
    78         list2.add(new Worker("王五", 25));
    79         
    80         list1.addAll(list2);
    81         
    82         System.out.println(list1);
    83         
    84     }
    85 
    86 }
    87 
    88 /////////////////////////////////////////////////////////////////
  • 相关阅读:
    MongoDB解析 2XML配置文件
    MongoDB解析 1理论基础
    JAVA GoF设计模式6大设计原则
    Kafka解析1快速入门
    JAVA GoF设计模式 1创建型设计模式
    B/S架构与C/S架构的区别
    【笔记】Oracle使用笔记
    如何通过WinDbg获取方法参数值
    Windows 启动过程
    ubuntu安装leveldb
  • 原文地址:https://www.cnblogs.com/jiangjunwei/p/java.html
Copyright © 2020-2023  润新知