我们可以在HashMap put方法中创建一个实例

时间:2013-12-17 21:50:47

标签: java hashmap createinstance

对于Java中的HashMap,我们可以在put方法中创建一个实例吗?

例如:

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

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

CheesePizza和VeggiePizza扩展了Pizza课程

如果不能,其他任何其他方式这样做,而不是使用“if else”和“switch”子句?

任何提示都将不胜感激!

2 个答案:

答案 0 :(得分:1)

有效。你可以在这个插槽中放入任何返回Pizza的表达式,并调用构造函数就可以了。

答案 1 :(得分: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);
    }
}

<强>输出:

{veggie=PizzaExample$VeggiePizza@540fe861, cheese=PizzaExample$CheesePizza@60616364}

素食和奶酪披萨正如预期的那样。