泛型
Opened this issue · 3 comments
styleyan commented
java泛型中的标记含义:
- T: Type(表示一个具体的java类)
- E: Element(在集合中使用,因为集合中存放的是元素)
- K / V: Key Value(分别代表java键值中的Key Value)
- ?: 表示不确定的java类型
静态方法不能引用泛型类型,必须定义其他类型来实现"泛型"
public static <K> Pair<K> create(K first, K last) { ... }
参考链接地址
styleyan commented
List,List,List<?>区别
// 指定集合元素只能是T类型
ArrayList<T> al = new ArrayList<T>();
// 集合元素可以是任意类型,这种没有意义,一般是方法中,知识为了说明用法
ArrayList<?> al2 = new ArrayList<?>();
// 泛型的限定: ? extends E: 接收E类型或者E的子类型,? super E: 接收E类型或者E的父类型
ArrayList<? extends E> al=new ArrayList<? extends E>();
styleyan commented
Class,Class<?>区别
styleyan commented
泛型方法
public <T> T showKeyName(Generic<T> container) {
.....
}
public与返回值之间的必不可少,这表明这是一个泛型方法,并且声明了一个泛型,