zoukankan      html  css  js  c++  java
  • <? extends A> 和 <? super A> 的意思

    /**
     * @author  Lee Boynton
     * @author  Arthur van Hoff
     * @author  Martin Buchholz
     * @author  Ulf Zibis
     * @see     java.lang.Object#toString()
     * @see     java.lang.StringBuffer
     * @see     java.lang.StringBuilder
     * @see     java.nio.charset.Charset
     * @since   JDK1.0
     */
    
    public final class String
        implements java.io.Serializable, Comparable<String>, CharSequence {
      
    }
    package com.jvm;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    public class T20160727 {
        public static void main(String[] args) {
            List<String> list = new ArrayList<String>();
            list.add("ghi");
            list.add("def");
            list.add("abc");
            System.out.println(list);
            sort(list);
            System.out.println(list);
        }
        
        public static <T extends Comparable<? super T>> void sort(List<T> list){    
            Collections.sort(list);
        }
    }

    输出:
    [ghi, def, abc]
    [abc, def, ghi]

    <? extends A>表示类型必须是A或者A的子类
    <? super A>表示类型必须是A或者A的超类


    下面是JDK String的定义

    public final class String  implements java.io.Serializable, Comparable<String>, CharSequence 
    这里满足String是Comparable<String>的子类,而Comparable中的T就是String本身


  • 相关阅读:
    Linux用户和用户组管理
    Linux系统概述
    Linux LVM 配置
    linux too many open files 问题总结
    tidb初体验
    kafka配置内外网访问
    使用docker快速安装软件
    一次ssh不能登陆问题
    kubernetes集群证书更新
    istio之envoy常见术语及状态码
  • 原文地址:https://www.cnblogs.com/chenjianxiang/p/5712837.html
Copyright © 2011-2022 走看看