パラメーターなしのコンストラクターを必須にする方法はありますか?Java - パラメーターなしのコンストラクターを作成する必要があります。
私はこの例がうまくいくと思いました。あなたは、クラスAとBがあります。
public class A {
public A() {
//do something
}
}
public class B extends A {
public B(int number) {
//do something with number
}
}
をしかし、クラスBは、パラメータなしのコンストラクタを持っていないので、あなたは、B b = new B();
を呼び出すことはできません。それは番号を持つコンストラクタしか持っていません。
私はJavaでのリフレクションで遊んでいて、クラス(class.newInstance()
)からオブジェクトをインスタンス化したかったのです。しかし、このようにインスタンス化するには、パラメータを持たないコンストラクタが必要です。
私は今、反射について尋ねていません。私は、argのコンストラクタを強制的に作成する方法や、クラスがコンストラクタについて言及していることを確認する方法があるかどうかを知りたいだけです。あなたには、いくつかの合理的なデフォルトにnumber
を設定(またはJavaを0に設定してみましょう)B
で引数なしのコンストラクタを提供している場合、これが行うことができる
いいえ、このような方法はありません。このような方法はありません。 – Tunaki
すべてのクラスを反映するテストを追加して、0のargコンストラクタを持たないクラスを見つけたら失敗する可能性があります。 – beresfordt
コンストラクタを追加するだけです。あなたが何を求めているのかは分かりません。 "パラメータのないコンストラクタがあるはずです"と言うクラスを修正しようとしたら、代わりにそのクラスを提供するように変更することができます。 –