不大使用复杂的泛型,用的时候经常忘记。在此记录一下吧 泛型的工厂 public class TestProduct { public static void main(String[] args) { Factory factory = new FactoryImpl(); ProductImpl p = factory.getProduct(ProductImpl.class); System.out.println(p.doit()); } } interface Factory { public <T> T getProduct(Class<T> klass); } interface Product<T> { public T doit(); } class FactoryImpl implements Factory { public <T> T getProduct(Class<T> klass) { ProductImpl p = new ProductImpl(); return (T) p; } } class ProductImpl implements Product<String> { public String doit() { return "YES"; } } 注意了:FactoryImpl中有一行进行强制转换: return (T)p; 都泛型了还是离不开强制转换,java泛型真丑陋啊