zoukankan      html  css  js  c++  java
  • 泛型通配符

    泛型通配符的使用

    package javabasis.fanxing;
    
    
    /*
    * 此处讲述泛型通配符相关内容
    *
    * 三种
    * ?
    * ? extends E
    * ? super E
    * */
    
    import org.junit.Test;
    
    class FanXingSymbols<T> {
    
        private T param;
    
        public FanXingSymbols(T param) {
            this.param = param;
        }
    
        public T getParam() {
            return param;
        }
    
        public void setParam(T param) {
            this.param = param;
        }
    }
    
    public class NO3FanXing2 {
    
        @Test
        public void test(){
    
            FanXingSymbols<?> fanXingSymbols = new FanXingSymbols<>(123);
            fanXingSymbols.getParam();
    //        fanXingSymbols.setParam(234234);
            //'setParam(capture<?>)' in 'javabasis.fanxing.FanXingSymbols' cannot be applied to '(int)'
            //无法使用set
    
    
            //构造的泛型类 必须是Number的子类, 并且只能取出不能加入.  因为在未编译时,无法判断此泛型类,指定的什么类型参数
            //符合消费者的概念 只能取 不能放
            FanXingSymbols<? extends Number > fanXingSymbols2 = new FanXingSymbols<>(123);
            fanXingSymbols2.getParam();
    //        fanXingSymbols2.setParam(454545);
    
    
            //只能放入 Integer的父类 或者父类的父类
            FanXingSymbols<? super Integer > fanXingSymbols3 = new FanXingSymbols<>(123);
            //取出使用Object
            Object a = fanXingSymbols3.getParam();
            fanXingSymbols3.setParam(4545);
    
        }
    }
    
    
  • 相关阅读:
    MVC中CheckBox
    Python中的高级数据结构
    高级正则表达式技术(Python版)
    程序员可以兼任项目经理吗?
    浅谈五大Python Web框架
    学习Python编程的11个资源
    Python 代码性能优化技巧
    python多线程ctrl-c退出问题
    Python 笔记 : 类和继承
    Python的OO思想
  • 原文地址:https://www.cnblogs.com/yaoxublog/p/10944614.html
Copyright © 2011-2022 走看看