对于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”子句?
任何提示都将不胜感激!
答案 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}
素食和奶酪披萨正如预期的那样。