• Day17_泛型


    泛型

    • Java泛型是JDK1.5中引入的一个新特性,其本质是参数化类型,把类型作为参数传递。
    • 常见形式有泛型类、泛型接口、泛型方法。
    • 语法:
      • <T,...>T称为类型占位符,表示一种引用类型。
    • 好处:
      • (1)提高代码的重用性
      • (2)防止类型转换异常,提高代码的安全性
    package com.oop.demo13;
    
    /**
     * 泛型方法
     * 语法:<T>返回值类型
     *
     */
    public class MyGenericMethod {
        //泛型方法
        public <T> T show(T t){
            System.out.println ("泛型方法"+t);
            return t;
        }
    }
    
    package com.oop.demo13;
    
    public class TestGeneric {
        public static void main(String[] args) {
            //使用泛型类创建对象
            MyGeneric<String> myGeneric=new MyGeneric<String> ();
            myGeneric.t="hello";
            myGeneric.show ("大家好");
            String string = myGeneric.getT ();
            MyGeneric<Integer> myGeneric1=new MyGeneric<Integer> ();
            myGeneric1.t=100;
            myGeneric1.show (200);
            String s=myGeneric.getT ();
            //泛型接口
            MyInterfaceImpl impl=new MyInterfaceImpl ();
            impl.server ("ssss");
    
            MyInterfaceImpl2<Integer> impl2=new MyInterfaceImpl2<> ();
            impl2.server (1000);
    
            //泛型方法
            MyGenericMethod myGenericMethod=new MyGenericMethod ();
            myGenericMethod.show ("zhongguo");
            myGenericMethod.show (200);
            myGenericMethod.show (3.14);
    
        }
    }
    

    泛型集合

    • 概念:参数化类型、类型安全的集合,强制集合元素的类型必须一致。
    • 特点:
      • 编译时即可检查,而非运行时抛出异常。
      • 访问时,不必类型转换(拆箱)。
      • 不同泛型之间引用不能相互赋值,泛型不存在多态。
    package com.oop.demo13;
    
    import com.oop.Demo12.Student;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    
    public class Demo03 {
        public static void main(String[] args) {
            ArrayList<String> arrayList=new ArrayList <String>();
            arrayList.add ("xxxxxxx");
            arrayList.add ("yyyyyyy");
            //arrayList.add (10);
            //arrayList.add (20);
            for (Object object : arrayList) {
                System.out.println (object);
            }
    
            ArrayList<Student> arrayList1=new ArrayList<Student> ();
            Student s1=new Student ("xiaoming",10);
            Student s2=new Student ("xiaoHong",16);
            Student s3=new Student ("xiaobai",14);
            arrayList1.add (s1);
            arrayList1.add (s2);
            arrayList1.add (s3);
            Iterator<Student> it =arrayList1.iterator ();
            while (it.hasNext ()){
                Student s=it.next ();
                System.out.println (s);
            }
        }
    }
    
  • 相关阅读:
    win7上装红米4手机驱动提示空间不足
    HBuilder中改造console.info
    Thinkphp 出现 “_CACHE_WRITE_ERROR” 错误的可能解决办法
    Linux上跑两个版本的php,5.4.45和5.3.24
    JavaScript中对日期格式化的新想法.
    怪不得知乎急着招前端开发.
    菜鸟利用python处理大文本数据的血泪路
    Python:数字
    Python:列表,元组
    Python:映像、集合
  • 原文地址:https://www.cnblogs.com/lemonlover/p/14077623.html
Copyright © 2020-2023  润新知