<? extends A> 和 <? super A> 的意思
2016-08-16 20:20
281 查看
/** * @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本身
相关文章推荐
- <? extends T> 和 <? super T>分别是什么意思?有什么不同?
- Java泛型中<T extends Comparable<? super T>>是什么意思
- Java中 <? super T>,<? extends T>,和<T>的区别
- <? extends T>和<? super T>:上下界通配符的界限和使用
- 浅谈Java泛型中的<? extends E>和<? super E>的区别
- Java中 <? super T>,<? extends T>,和<T>的区别
- <? extends T>和<? super T>的理解
- <? extends T> 和 <? super T>的作用
- java泛型中<? super T> 和<? extends T>的区别---转发
- Java中 <? super T>,<? extends T>,和<T>的区别
- 理解Java 泛型 :<? super T> 和<? extends T>
- <? extends T>和<? super T>
- java <? super Fruit>与<? extends Fruit>
- java泛型中,上下界通配符(<? extends T>跟<? super T>)
- 泛型中<? super T> 和<?extends T>的区别
- <? extends T>和<? super T> 的解释
- <? extends T>和<? super T>区别
- <? extends AnyClass> <? super AnyClass>
- Java 泛型中的<? super T>和<? extends T>
- 泛型 <? extends Object> <? super Object>