public class GenericClass<E> {
private E name;
public E getName() {
return name;
}
public void setName(E name) {
this.name = name;
}
}
//使用
public static void main(String[] args) {
//创建GenericClass对象,泛型使用Integer类型
GenericClass<Integer> generic = new GenericClass<>();
generic.setName(20);
}
含有泛型的方法
定义含有泛型的方法:泛型定义在方法的修饰符和返回值类型之间
格式: 修饰符 <泛型> 返回值类型 方法名 (参数列表(使用泛型)){ 方法体; }
含有泛型的方法,在调用方法的时候确定泛型的类型;(传递什么类型的参数,泛型就是什么类型)
public <E> void method(E e){
System.out.println(e);
}
//静态方法
public static <E> void method(E e){
System.out.println(e);
}
定义和使用含有泛型的接口
含有泛型的接口,第一种使用方式:定义接口的实现类,实现接口,定义泛型的类型
使用举例:
//定义一个泛型接口
public interface GenericInterface<E> {
public abstract void method(E e);
}
//定义泛型接口实现类
public class GenericInterfaceImpl implements GenericInterface<String> {
@Override
public void method(String s) {
System.out.println(s);
}
}
含有泛型的接口,第二种使用方式:接口使用什么泛型,实现类就使用什么泛型,类跟着接口走
就相当于定义了一个泛型类,创建对象的时候确定泛型的类型
使用举例:
//定义实现类
public class GenericInterfaceImpl2<E> implements GenericInterface<E> {
@Override
public void method(E e) {
System.out.println(e);
}
}
//使用
public static void main(String[] args) {
GenericInterfaceImpl2<String> genericInterfaceImpl2 = new GenericInterfaceImpl2<>();
genericInterfaceImpl2.method("abc");//泛型为String类型
}