[英]Parsing parameters in subclass before calling constructor of the superclass
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");
}
我想在调用超级构造函数之前先放这两个if语句。 我知道我不能这样做,那么在调用super()
之前,那种解析参数(抛出Exception
)的无痛方法是什么?
使用String[]
声明一个验证方法并返回它:
private static String[] validate(String[] param) {
// do validation here
return param;
}
在第一次使用param
时调用它
super("Rectangle", Double.parseDouble(validate(param).parameters[0]),
这个技巧可以快速解决问题,但是,正如另一张海报所指出的,有时最好重构你的API(比如创建一个工厂方法)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.