zoukankan      html  css  js  c++  java
  • Java之通配符

    1、 通配符

    不确定集合中的元素具体的数据类型
    使用?表示所有类型

    格式:

    public void test(List<?> list){
    	System.out.println(list);
    }
    
    

    2、 有限制的通配符

    public class Test2 {
    	public static void main(String[] args) {
    		List<String> list = new ArrayList<String>();
    		Dd d = new Dd();
    		d.test(list);
    		
    		List<D1> ld = new ArrayList<D1>();
    		d.test1(ld);
    		List<A1> la = new ArrayList<A1>();
    //		d.test1(la);//不能传A1对象类型,只能传C1及其子类
    		
    //		d.test2(ld);//不能传D1对象类型,只能传C1及其父类
    		
    		//接口
    		List<Ee> le = new ArrayList<Ee>();
    		d.test3(le);
    	}
    }
    
    class Dd{
    	/**
    	 * 不确定集合中的元素具体的数据类型
    	 * 使用?表示所有类型
    	 * @param list
    	 */
    	public void test(List<?>list) {}//test方法需要一个list集合的参数,不确定list集合到底是存的数据的类型是什么?用?
    	public void test1(List<? extends C1> list) {}//? extends C1 只允许接收C1或C1的子类
    	public void test2(List<? super C1> list) {}//? super C1 只允许接收C1或C1的父类
    	public void test3(List<? extends E1> list) {}//? extends E1 只允许接收接口E1的实现类
    }
    
    class A1{}
    class B3 extends A1{}
    class C1 extends B3{}
    class D1 extends C1{}
    //接口
    interface E1{}
    class Ee implements E1{}
    
  • 相关阅读:
    使用iptables禁止外网访问tomcat的8080端口
    解决ie浏览器下载apk或ipa变为zip
    'ᄈ'
    centos上安装grafana
    vertica单节点故障恢复 Startup Failed, ASR Required
    vertica审计日志
    centos安装nginx1.17.9
    centos上nginx转发tcp请求
    centos 安装mysql8.0.16
    centos下导出docx为html
  • 原文地址:https://www.cnblogs.com/istart/p/12041129.html
Copyright © 2011-2022 走看看