Class refection-动态类调用
下面是使用if-else的代码。如果我需要动态创建一个类。我怎么做?是否使用反射?如果是:如何使用反射实现相同的功能Class refection-动态类调用,class,dynamic,reflection,factory,factory-pattern,Class,Dynamic,Reflection,Factory,Factory Pattern,下面是使用if-else的代码。如果我需要动态创建一个类。我怎么做?是否使用反射?如果是:如何使用反射实现相同的功能 public static Pizza getConcretePizza(String PType) { Pizza p=null; if (PType.equals("Cheese")) { p=new CheesePizza(); //ResultIng = cp.FetchIng();
public static Pizza getConcretePizza(String PType)
{
Pizza p=null;
if (PType.equals("Cheese"))
{
p=new CheesePizza();
//ResultIng = cp.FetchIng();
} else if (PType.equals("Pepperoni"))
{
p=new PepperoniPizza();
// ResultIng = pp.FetchIng();
}
else if (PType.equals("Clam"))
{
p = new CalmPizza();
//ResultIng = cap.FetchIng();
}
else if (PType.equals("Veggie"))
{
p= new VeggiePizza();
// ResultIng = vp.FetchIng();
}
return(p);
}
我试图得到答案,最终找到了解决办法 我们需要替换下面的代码,而不是IF uu-ELSE
Class<?> clazz = Class.forName("PizzaTrail." + PType);
Object instance = clazz.newInstance();
p = (Pizza) instance;
return (p);
上面的代码将解决编写if-else的问题,反射将有助于动态调用该类