2014-05-14 22 views
0

以下是使用else時的代碼。如果我需要動態創建一個類。我該怎麼做?是反射使用?如果是這樣的話:我如何使用反射來實現相同的功能?Refecltion - 動態類調用

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); 
    } 

回答

0

我試着得到答案,並最終找到了解決方案。

(而不是如果_否則,我們需要更換FOLLWOING CODE)

 Class<?> clazz = Class.forName("PizzaTrail." + PType); 
     Object instance = clazz.newInstance(); 
     p = (Pizza) instance; 
     return (p); 

上面的代碼將解決寫作的問題,如果別人和思考將有助於動態調用類。