【发布时间】:2021-11-21 07:17:26
【问题描述】:
我正在尝试在 java 中重载构造函数。它的变量中有两个字符串,如果我在只调用其中一个字符串的情况下编写两个单独的构造函数,这是有问题的。这就是为什么我想使用以下代码:
public Timbre(String string){
if(string.indexOf("-") == -1){
this, ANNEE_COURANTE, string, VALEUR_TIMBRE_DEFAUT);
} else{
this(string, ANNEE_COURANTE, PAYS_DEFAUT, VALEUR_TIMBRE_DEFAUT);
}
}
但是,VSC 告诉我“构造函数调用必须是构造函数中的第一条语句”。 我该如何克服这个问题?
【问题讨论】:
-
代码无法编译,您在语句的第一个分支中缺少左括号和参数。
this, ANNEE_COURANTE, ...不会被视为构造函数调用。 -
这似乎是一个你需要不同创作策略的地方;使用
Builder可能是合适的。
标签: java constructor-overloading