これは私が拡張する必要が外部のクラスです:Javaのサブクラスのコンストラクタ
public class Binary {
public Binary(byte type , byte[] data){
_type = type;
_data = data;
}
public byte getType(){
return _type;
}
public byte[] getData(){
return _data;
}
public int length(){
return _data.length;
}
final byte _type;
final byte[] _data;
}
そして、これは私が作成したサブクラスです:
import org.bson.types.Binary;
public class NoahId extends Binary {
public NoahId(byte[] data) {
//Constructor call must be the first statement in a constructor
super((byte) 0 , data);
}
}
私はすべての私のサブクラス(NoahId)を強制したいです特定の長さのbyte []データを持つか、そうでない場合は例外をスローします。コンストラクタの呼び出しがサブクラスのコンストラクタの最初の文でなければならない場合、どうすればこの種のチェックを実行できますか?
私のクラスを作成する静的メソッドを使用すると、私はチェックを行うことができますが、私はまだ明示的なコンストラクタを定義する必要があります。
なぜ 'super'コールの後に長さをチェックしないのですか?その後もエラーを投げることができます。 –