根据泛型在java中的不同位置,大致可以分为类泛型、方法泛型和接口泛型。以下三个Demo基本展现三种泛型的用法,其中接口泛型又分两种情况描述。
类泛型和方法泛型
1 import java.util.ArrayList; 2 3 //类泛型 4 class DemoClass<T> { 5 public void method(T t) { 6 System.out.println(t); 7 } 8 } 9 10 class ClassDemo { 11 //方法泛型 12 public static <E> void Method(E e) { 13 System.out.println(e); 14 } 15 } 16 17 public class TriggerPrint { 18 public static void main(String[] args) { 19 DemoClass<String> dc1 = new DemoClass<>(); 20 dc1.method("泛型类示例"); 21 DemoClass<Double> dc2 = new DemoClass<>(); 22 dc2.method(3.1415926); 23 // --------------------------------------- 24 String s = "泛型方法示例"; 25 ClassDemo.Method(s); 26 ArrayList<Integer> it = new ArrayList<>(); 27 it.add(10); 28 it.add(11); 29 it.add(12); 30 ClassDemo.Method(it); 31 } 32 }
接口泛型
1 //接口泛型 2 //第一种情况,实现的时候知道具体类型。 3 interface ModeClass<E> { 4 public abstract void show(E e); 5 } 6 7 public class Demo implements ModeClass<String> { 8 public static void main(String[] args) { 9 } 10 11 public void show(String s) { 12 } 13 }
1 //第二程情况,实现的时候依然不知道具体类型,创建对象时才知道具体类型。 2 //ArrayList实现List接口 3 interface ClassDemo<E> { 4 public abstract void method(E e); 5 } 6 7 class DemoClass<E> implements ClassDemo<E> { 8 public void method(E e) { 9 System.out.println(e); 10 } 11 } 12 13 public class Demo { 14 public static void main(String[] args) { 15 DemoClass<String> d = new DemoClass<String>(); 16 d.method("HelloWorld"); 17 } 18 }