2013-12-17 68 views
-2

對於Java中的HashMap,我們可以在put方法中創建一個實例嗎?我們可以用HashMap的方法創建一個實例嗎

例如:

HashMap<String, Pizza> pizzaStock = new HashMap<String, Pizza>(); 

pizzaStock.put("cheese", new CheesePizza()); 
pizzaStock.put("Veggie", new VeggiePizza()); 

CheesePizza和VeggiePizza擴展比薩類

如果不能,其他任何其他方式做到這一點,而不是使用「如果其他人」和「開關」條款?

任何提示將不勝感激!

+3

您是否試過這樣做?這將是非常簡單的測試。你的結果是什麼? – DoubleDouble

+1

如果你沒有訪問一個體面的java編譯器,你可以在這裏快速嘗試你的代碼:http://www.compileonline.com/compile_java_online.php – Stephan

+0

謝謝,它的工作原理,我把代碼放在錯誤的地方。 .. – user1552891

回答

1

它的工作原理。你可以在這個槽中放入任何返回一個Pizza的表達式,並調用構造函數完成它。

0

作爲一個簡單的測試,可以使用下面的代碼:

import java.util.Map; 
import java.util.HashMap; 

public class PizzaExample{ 
    public static class Pizza{} 
    public static class CheesePizza extends Pizza{} 
    public static class VeggiePizza extends Pizza{} 

    public static void main(String... args){ 
     Map<String, Pizza> pizzaStock = new HashMap<String, Pizza>(); 

     pizzaStock.put("cheese", new CheesePizza()); 
     pizzaStock.put("veggie", new VeggiePizza()); 
     System.out.println(pizzaStock); 
    } 
} 

輸出:

{[email protected], [email protected]} 

的蔬菜和奶酪比薩餅在那裏按預期方式。

相關問題