Java泛型中的?TKVE等代表的意思
Java泛型中的标记符含义:
E - Element (在集合中使⽤,因为集合中存放的是元素)
T - Type(Java 类)T代表在调⽤时的指定类型
K - Key(键)
V - Value(值)
N - Number(数值类型)猕猴桃的吃法
- 表⽰不确定的java类型⼀般⽤在通配
定义泛型:Point<T>网红排行榜
⾸先,⼤家可以看到Point<T>在类名后⾯加⼀个尖括号,括号⾥是⼀个⼤写字母。这⾥写的是T,其实这个字母可以是任何⼤写字母。
public static void printColl(ArrayList<?> al){
Iterator<?> it = al.iterator();
while(it.hasNext())
{
System.out.().toString());
}
和T都表⽰不确定的类型但如果是T的话函数⾥⾯可以对T进⾏操作
⽐如while⾥⾯可以这样写
T t = it.next();
System.out.println(t);
T⾃定义泛型和?通配符泛型
1.在整个类中只有⼀处使⽤了泛型,使⽤时注意加了泛型了参数不能调⽤与参数类型有关的⽅法⽐如“+”,⽐如打印出任意参数化类型集合中的所有内容,就适合⽤通配符泛型<?>
植物的诗public static void printCollecton(Collection <?> collection)
{
for(Object obj: collection)
{
付之东流的意思
System.out.println(obj);蚂蚁阅读
}关联词都有哪些
}
2. 当⼀个类型变脸⽤来表达两个参数之间或者参数与返回值之间的关系时,即统⼀各类型变量在⽅法签名的两处被使⽤,或者类型变量在⽅法体代码中也被使⽤⽽不仅仅在签名的时候使⽤,这是应该⽤⾃定义泛型<T>。泛型⽅可以调⽤⼀些时间类型的⽅法。⽐如集合的add⽅法。
public static <T> T autoConvertType(T obj)
{
return(T)obj;
}
泛型三种:
[1]ArrayList<T> al=new ArrayList<T>();指定集合元素只能是T类型
亨利亚当[2]ArrayList<?> al=new ArrayList<?>();集合元素可以是任意类型,这种没有意义,⼀般是⽅法中,只是为了说明⽤法
一年一度[3]ArrayList<? extends E> al=new ArrayList<? extends E>();
泛型的限定:
extends E:接收E类型或者E的⼦类型。
?super E:接收E类型或者E的⽗类型。