定义和使用含有泛型的类
public class FanXing<T> {
public void print(T t) {
System.out.println(t);
}
}
public class Demo {
public static void main(String[] args) {
FanXing<String> dx1 = new FanXing<>();
dx1.print("这个对象只能打印字符串");
FanXing<Integer> dx2 = new FanXing<>();
dx2.print(1632);
}
}
定义和使用含有泛型的接口
public interface FanXingInterface<O> {
public abstract void print(O o);
}
public class Demo {
public static void main(String[] args) {
FanXing<String> dx1 = new FanXing<>();
dx1.print("这个对象只能打印字符串");
FanXing<Integer> dx2 = new FanXing<>();
dx2.print(1632);
System.out.println("=====================");
MyImpl<String> dx3 = new MyImpl<>();
dx3.print("只能是字符串");
MyImpl<Double> dx4 = new MyImpl<>();
dx4.print(2361.1632);
}
}
泛型通配符<?>的使用
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<String> list1 = new ArrayList<>();
list1.add("aaa");
list1.add("bbb");
ArrayList<Integer> list2 = new ArrayList<>();
list2.add(12);
list2.add(45);
print(list1);
print(list2);
}
public static void print(ArrayList<?> list) {
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}