考えるコンストラクタ:ほとんどの特定のコンストラクタシグネチャ
A(B... params)
A(String param1, B... params)
私はA(null)
最初のコンストラクタが呼び出されたときに起動します。引数nullの2番目のコンストラクタを呼び出す方法はありますか?null
をString
にキャストしないでください。
編集: 私は自分の問題を説明して間違いを犯しましたが、今は問題ありません。
考えるコンストラクタ:ほとんどの特定のコンストラクタシグネチャ
A(B... params)
A(String param1, B... params)
私はA(null)
最初のコンストラクタが呼び出されたときに起動します。引数nullの2番目のコンストラクタを呼び出す方法はありますか?null
をString
にキャストしないでください。
編集: 私は自分の問題を説明して間違いを犯しましたが、今は問題ありません。
申し訳ありませんが、あなたの問題は表示されません。
public class A
{
A(String a)
{
System.out.println("constructor(String)");
}
A(String a, B... b)
{
System.out.println("constructor(String, B...)");
}
public static void main(String[] args)
{
new A(null, null);
}
private static final class B
{
}
}
これは今編集されているので、私の質問を読んでください。 – ctomek
答えはありません。何を答えようとしていますか? – TheLostMind
最初にあなたの質問に間違いをしただけでマイナス1を得るのは好きではありません。二番目:あなたは私のアンカーのためにあなたの間違いを認識しただけです。第三:私の答えにはあなたが逃した新しいものがあります: 'new A(null、null)'にはキャストは必要ありません。これは、キャストなしで2番目のコンストラクタを使用する答えです。 –
どこかで、あなたはまさにそれがうまくいかない場合のみである
A a = new A(null);
を持っています。それはnew A(null)
を防ぐことはできません
A() {
this((String) null);
}
A a = new A();
:(。Bは、具体的なタイプではなく、汎用的であると仮定)あなたは
A a = new A((String)null);
A a = new A("");
が続いて最大限のために行くと、ショートカットのコンストラクタを追加したくありません。
'new A((String)null)'を呼び出す問題は何ですか? – kennytm
@kennytm私はそれが問題だと言っているわけではありません、私はそれを行う別の方法があるかどうか尋ねています。 – ctomek
なぜあなたは別の方法をお探しですか?この方法で何が問題になっているのですか。 (他の方法はないので、少なくとも私が知っている)。そして、なぜ2つのコンストラクタがあるのですか? – Tunaki