かなり簡単な質問がありましたが、これまでのところ何も見つかりませんでした。
2 つのクラス コンストラクターを作成しようとしています。
最初のコンストラクターは、2 つの String と 1 つの HashMap を取得し、クラス変数を初期化します。
public Foo(String a, String b, HashMap<String, String> c) {
this.a = a;
this.b = b;
this.c = c;
}
2 番目のコンストラクターは、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);
}
これを解決する方法はありますか?
最悪の場合、コードを複製する必要がありましたが、他に良い方法はないかと考えていました。