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

    泛型通配符 ? 任意类型 

    注意:在泛型中是不能用多态的

    例:

    List<Object> i = new ArrayList<String>();

    ×   错误原因是不同泛型之间不能相互赋值。

    例:

     1 package jihe;
     2 import java.util.*;
     3 public class Fanxing2 {
     4 
     5     public static void main(String[] args) {
     6         List<Object> i1 = new ArrayList<Object>();
     7         List<String> i2 = new ArrayList<String>();
     8         List<Number> i3 = new ArrayList<Number>();
     9         List<Integer> i4 = new ArrayList<Integer>();
    10         List<Double> i5 = new ArrayList<Double>();
    11         print(i1);
    12         print(i2);
    13         print(i3);
    14         print(i4);
    15         print(i5);
    16         
    17     }
    18     static void print(List<?> i) {
    19     }
    20 }

    带修饰范围的 修饰符 ? extend

    泛型通配符 Number 或者Number的任何子类 i3 i4 i5 通过

    package jihe;
    import java.util.*;
    public class Fanxing2 {
        public static void main(String[] args) {
            List<Object> i1 = new ArrayList<Object>();
            List<String> i2 = new ArrayList<String>();
            List<Number> i3 = new ArrayList<Number>();
            List<Integer> i4 = new ArrayList<Integer>();
            List<Double> i5 = new ArrayList<Double>();
            print(i1);
            print(i2);
            print(i3);
            print(i4);
            print(i5);
        }
        static void print(List<? extends Number > i) {
        }
    }

    ? super Number Number类或者Number的任何父类 i1 i3 通过

    package jihe;
    import java.util.*;
    public class Fanxing2 {
        public static void main(String[] args) {
            List<Object> i1 = new ArrayList<Object>();
            List<String> i2 = new ArrayList<String>();
            List<Number> i3 = new ArrayList<Number>();
            List<Integer> i4 = new ArrayList<Integer>();
            List<Double> i5 = new ArrayList<Double>();
            print(i1);
            print(i2);
            print(i3);
            print(i4);
            print(i5);
        }
        static void print(List<? super Number > i) {
        }
    }

    ? extends Coparable 让i1 和 i3 不通过 首先找String Integer Double的共性 Coparable

     1 package jihe;
     2 import java.util.*;
     3 public class Fanxing2 {
     4     public static void main(String[] args) {
     5         List<Object> i1 = new ArrayList<Object>();
     6         List<String> i2 = new ArrayList<String>();
     7         List<Number> i3 = new ArrayList<Number>();
     8         List<Integer> i4 = new ArrayList<Integer>();
     9         List<Double> i5 = new ArrayList<Double>();
    10         print(i1);
    11         print(i2);
    12         print(i3);
    13         print(i4);
    14         print(i5);
    15     }
    16     static void print(List<? extends Comparable> i) {
    17     }
    18 }
  • 相关阅读:
    安卓客户端获取手机号码
    安卓自定义控件之设计自己的提示dialog
    一步步打造自己的分页控件4
    C#winform小游戏之贪吃蛇重温C#
    android观察者模式
    Android开发之Java设计模式
    Android 用Animationlist实现逐帧动画
    图片压缩
    Android使用缓存优化ListView
    Android命令行启动程序正确使用技巧解析
  • 原文地址:https://www.cnblogs.com/jack4738/p/6962184.html
Copyright © 2011-2022 走看看