泛型概述
package Demo04;
public class GenericClass <E>{
private E name;
public E getName() {
return name;
}
public void setName(E name) {
this.name = name;
}
}
package Demo04;
public class Demo05GenericClass {
public static void main(String[] args) {
GenericClass gc=new GenericClass();
gc.setName("老村长");
Object obj=gc.getName();
System.out.println(obj);
GenericClass<Integer>gc2=new GenericClass<>();
gc2.setName(2);
Integer name= gc2.getName();
System.out.println(name);
}
}//
老村长
2
定义和使用含有泛型的方法
package Demo04;
public class GenericMethod {
//定义一个含有泛型的方法
public <M> void method01(M m){
System.out.println(m);
}
//定义一个含有泛型的静态方法
public static <S> void method02(S s){
System.out.println(s);
}
}
package Demo04;
public class Demo06GenricMethod {
public static void main(String[] args) {
GenericMethod gm=new GenericMethod();
gm.method01(10);
gm.method01("lcz");
gm.method01(10.0);
gm.method01(true);
gm.method02("静态方法,不建议创建对象使用");
GenericMethod.method02("静态方法");
GenericMethod.method02(1);
}
}//
10
lcz
10.0
true
静态方法,不建议创建对象使用
静态方法
1
package Demo04;
public class GenericClass <E>{
private E name;
public E getName() {
return name;
}
public void setName(E name) {
this.name = name;
}
}
接口泛型
package Demo04;
/*
定义一个含有泛型的接口
*/
public interface GenericInterface<I> {
public abstract void method(I i);
}
package Demo04;
public class GeneericInterface<I> implements GenericInterface<I>{//各种类型都可以
@Override
public void method(I i) {
System.out.println(i);
}
}
package Demo04;
public class Demo04GenericInterface {
public static void main(String[] args) {
GeneericInterface gi1=new GeneericInterface();
gi1.method("lcz");
gi1.method(1);
}
}
lcz
1
泛型通用符
package Demo04;
import java.util.ArrayList;
import java.util.Iterator;
public class Demo05Generic {
public static void main(String[] args) {
ArrayList<Integer> list01=new ArrayList<>();
list01.add(5);
ArrayList<String>list02=new ArrayList<>();
list02.add("老村长");
printArray(list01);
printArray(list02);
}
public static void printArray(ArrayList<?>list){
Iterator<?> it=list.iterator();
while (it.hasNext()){
Object o=it.next();
System.out.println(o);
}
}
}//
5
老村长