2013-12-17 202 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]} 

的蔬菜和奶酪比萨饼在那里按预期方式。

相关问题