我有一个非常简单的问题,但到目前为止找不到任何东西。
我正在尝试创建两个类构造函数。
第一个构造函数获取 2 个字符串和一个 HashMap 并初始化类变量。
public Foo(String a, String b, HashMap<String, String> c) {
this.a = a;
this.b = b;
this.c = c;
}
第二个构造函数应该只获取 2 个字符串并创建一个“默认”-HashMap。
通常你只是this()
用里面的默认值调用,但我找不到用HashMap
.
public Foo(String a, String b) {
this(a, b, new HashMap<String, String>().put("x", "y").put("f","g"));
}
Eclipse 标记一个错误:
类型不匹配:无法转换
String
为HashMap<String,String>
否则this()
-call 不能是函数中的第一条语句。
public Foo(String a, String b) {
HashMap<String, String> c = new HashMap<String, String>();
c.put("x", "y");
c.put("f", "g");
this(a, b, c);
}
任何想法如何解决这个问题?
最坏的情况是我不得不复制代码,但我想知道是否没有更好的方法。