gpt4 book ai didi

java - 在调用父类(super class)的构造函数之前解析子类中的参数

转载 作者:行者123 更新时间:2023-12-02 19:32:33 25 4
gpt4 key购买 nike

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");
}

我想在调用 super 构造函数之前放置这两个 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(例如创建工厂方法)。

关于java - 在调用父类(super class)的构造函数之前解析子类中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3481239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com