J
a
v
a
Java
Java中泛型通配符的使用
用
?
?
? 表示。
package 泛型
;
import java
.util
.ArrayList
;
import java
.util
.Collection
;
import java
.util
.Iterator
;
public class MaInClass {
public static void main(String
[] args
) {
Collection
<String> col1
= new ArrayList<>();
col1
.add("adada");
col1
.add("bbbbb");
col1
.add("ccccc");
col1
.add("ddddd");
Collection
<Integer> col2
= new ArrayList<>();
col2
.add(123);
col2
.add(444);
col2
.add(11111);
col2
.add(5555);
fun(col1
);
fun(col2
);
Collection
<Number> col3
= new ArrayList<>();
Collection
<Object> col4
= new ArrayList<>();
}
public static void fun(Collection
<?> col
) {
Iterator
<?> it
= col
.iterator();
while(it
.hasNext()){
Object o
= it
.next();
System
.out
.println(o
);
}
}
}
adada
bbbbb
ccccc
ddddd
123
444
11111
5555
2.
?
?
?另外的两个用法
<
?
e
x
t
e
n
d
s
C
l
a
s
s
>
<?\ extends\ Class>
<? extends Class> 只能使用
C
l
a
s
s
Class
Class及其子类
<
?
s
u
p
e
r
C
l
a
s
s
>
<?\ super\ Class>
<? super Class> 只能使用
C
l
a
s
s
Class
Class及其父类
package 泛型
;
import java
.util
.ArrayList
;
import java
.util
.Collection
;
public class MaInClass {
public static void main(String
[] args
) {
Collection
<String> col1
=new ArrayList<>();
Collection
<Integer> col2
=new ArrayList<>();
Collection
<Number> col3
=new ArrayList<>();
Collection
<Object> col4
=new ArrayList<>();
fun(col3
);
fun(col2
);
fun(col4
);
fun1(col3
);
fun1(col4
);
fun1(col2
);
}
public static void fun(Collection
<? extends Number> col
){
}
public static void fun1(Collection
<? super Number
> col
){}
}
转载请注明原文地址:https://blackberry.8miu.com/read-1015.html