当我在main中创建这个hashMap时,一切都很完美
HashMap<String, Furgoneta> mapper = new HashMap<>();
LocalDate f1 = LocalDate.of(2013, Month.JANUARY, 1);
LocalDate f2 = LocalDate.of(2016, Month.FEBRUARY, 10);
Furgoneta furgo1 = new Furgoneta("0001AAA", "Seat", "Ibiza", false, f1, f2, 3100);
//FILLING HASHMAP
mapper.put(furgo1.getMatricula(), furgo1);
System.out.println(mapper.toString());
当我尝试在类中编写相同的代码而不是main时,put会无法正常工作(无法填充hashmap)
//FILLING HASHMAP
mapper.put(furgo1.getMatricula(), furgo1);
System.out.println(mapper.toString());
对象furgoneta(意为范)
public class Furgoneta extends VehiculoAlquiler implements Serializable
{
private int mma;
//constructor
public Furgoneta(String matricula, String marca, String modelo, boolean alquilado,
LocalDate fechaI, LocalDate fechaF,int mma ) {
super(matricula, marca, modelo, alquilado, fechaI, fechaF);
this.mma = mma;
}
public int getMma() {
return mma;
}
如果我写这个主要工作
HashMap<String, Furgoneta> furgonetas = new HashMap<>();
LocalDate f1 = LocalDate.of(2013, Month.JANUARY, 1);
LocalDate f2 = LocalDate.of(2016, Month.FEBRUARY, 10);
Furgoneta furgo1 = new Furgoneta("0001AAA", "Seat", "Ibiza", false, f1, f2, 3100);
//Las introducimos en la HashMap
furgonetas.put(furgo1.getMatricula(), furgo1);
System.out.println(furgonetas.toString());
furgo1.importeAlquiler(f1, f2);
但是我想完全相同,但是在一个不在主
中的类中使用hashMap我无法填写我创建的hashmap。如果hashmap在main里面我可以填写它,但如果我尝试在一个类而不是main中编写hashmap并填充它,当我试图填写它时说&#34; package mapper不存在&#34;和#34;包furgo1不退出&#34;当mapper是hashmap名称而furgo1是一个对象
我看不出自己的错误,我真的很感激一些帮助,我被困在这里好几个小时。对不起,如果我第一次问起来很困惑
答案 0 :(得分:0)
你可以这样做:
Map<String, String> map = new HashMap<String, String>() {{
put("1", "one");
put("2", "two");
put("3", "three");
}};
它被称为“双支撑初始化”
第一个大括号创建一个新的AnonymousInnerClass,第二个大括号声明在实例化匿名内部类时运行的实例初始化程序块。