Это внешний класс мне нужно расширить: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) в имеют байт [] данные определенной длины или бросают исключение, если нет. Как я могу выполнить такие проверки, если вызов конструктора должен быть первым оператором в конструкторе подкласса?
Использование статического метода для создания моего класса позволяет мне выполнить проверку, но мне все же нужно определить явный конструктор.
Почему вы не проверяете длину после вызова 'super'? Вы по-прежнему можете сделать ошибку. –