1 package 反射;
2 interface Product{
3 public void produce();
4 }
5 class socks implements Product{
6 @Override
7 public void produce() {
8 System.out.println("袜子被生产");
9 }
10 }
11
12 class shoes implements Product{
13 @Override
14 public void produce() {
15 System.out.println("鞋子被生产");
16 }
17 }
18
19 class Factory{
20 private static Product product;
21 public static Product getInstance(String productName) throws ClassNotFoundException, InstantiationException, IllegalAccessException{
22 Class<?> cls=Class.forName(productName);
23 product=(Product)cls.newInstance();
24 return product;
25 }
26 }
27 public class TestFactory {
28 public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
29 Product product=Factory.getInstance("反射.socks");
30 product.produce();//袜子被生产
31
32 Product product2=Factory.getInstance("反射.shoes");
33 product2.produce();//鞋子被生产
34
35 }
36 }