zoukankan      html  css  js  c++  java
  • java 集合重要概念(简单了解泛型)

    1:泛型

    泛型:可以理解为未知的数据型   重点理解:类<T>   这个<T>就好比如  是 “类”的别名!!!!!!

    1-1 使用泛型方式创建集合

    创建集合是默认的类型为Object 弊端就是会出现想不到的异常 比如:一个object集合中 既放了狗 又放了 人 这个集合就不纯净了!

    List  list = new AarryList()  尽量不要这样去创建集合! ×××××××××   可能会在运行期间报异常!

    List<String> list = new ArrayList<String>();       这样会将异常从运行期提前到编译期,提早发现异常!

    类上使用泛型

    //泛型简单易懂的实例
    
    public class FanXingDemo<E> {
        private E name;
    
        public E getName() {
            return name;
        }
    
        public void setName(E name) {
            this.name = name;
        }
    }
    //测试代码

    public
    class TestDemo { public static void main(String[] args) { //设成为String类型 FanXingDemo<String> str = new FanXingDemo<String>(); str.setName("hello wo shi String"); System.out.println(str.getName()); //结果 hello wo shi String //设成为Integer类型 FanXingDemo<Integer> intt = new FanXingDemo<Integer>(); intt.setName(1111); System.out.println(intt.getName()); //结果1111 } }

    方法上的泛型使用

    //注意方法上使用泛型的语法: public <T> void/int/String/对象 方法名()      //静态的方法创建格式 public static<T> void/int/String/对象  方法名()
    
    public class FanXingDemo{
        //方法上使用泛型!
        public <T> void test(T t){
            System.out.println(t);
        }
    }
    
    //测试代码
           FanXingDemo f  = new FanXingDemo();
            f.test(1);  //可以是整型
            f.test("hello 我是字符串");  //可以是字符串
            f.test(new Baozi());   //可以是对象

    接口上使用泛型

    //第一种实现 实现接口时就实现
    //public class FanXingInterface_Impl implements FanXingInterface<String> {
    //    @Override
    //    public void getAll(String s) {
    //        
    //    }
    //}
    
    
    
    //第二种方式 由创建对象的时候去确定使用的类型 
    public class FanXingInterface_Impl<T> implements FanXingInterface<T>{
    
        @Override
        public void getAll(T t) {
            
        }
    }
    
    //测试代码
     //FanXingInterface_Impl<String> s = new FanXingInterface_Impl<String>();

    泛型的通配符 ? 注意!!只能作为方法的参数使用!!!!

    坚持
  • 相关阅读:
    Angular Universal 学习笔记
    SAP Spartacus 如何获得当前渲染页面的 CMS 元数据
    Angular 服务器端渲染的学习笔记(二)
    Angular 服务器端渲染的学习笔记(一)
    第三方外部 Saas提供商如何跟使用 SAP 系统的客户进行对接接口集成
    如何从 SAP Spartacus Product Detail 页面,找到其 Angular 实现 Component 的位置
    具备自动刷新功能的 SAP ABAP ALV 报表
    C++学习目录
    c--条件编译
    c--文件读写--二进制
  • 原文地址:https://www.cnblogs.com/gaoSJ/p/12841859.html
Copyright © 2011-2022 走看看