public Subclass(String[] parameters) throws IllegalArgumentException {
super("Rectangle",
Double.parseDouble(parameters[0]),
Double.parseDouble(parameters[1]),
90,
Double.parseDouble(parameters[2]),
Double.parseDouble(parameters[3]));
if(parameters.length != 4) throw new IllegalArgumentException("bla, bla");
if(parameters == null) throw new IllegalArgumentException("bla, bla");
}
I would like to put these 2 if statements before calling super-constructor. I know that I can't do that, so what's the painless way to do that kind of parsing of parameters (throwing Exception
) before calling super()
?
Declare a validation method taking String[]
and returning it:
private static String[] validate(String[] param) {
// do validation here
return param;
}
And call it when using param
first time
super("Rectangle", Double.parseDouble(validate(param).parameters[0]),
This trick solves problem quickly, but, as another poster noted, sometimes it's better to refactor your API (like creating a factory method).