当前位置: 首页 > 知识库问答 >
问题:

如何在java构造函数中使用if else语句

穆英飙
2023-03-14
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告诉我“构造函数调用必须是构造函数中的第一条语句”。我怎样才能克服这个问题?

共有1个答案

哈烨熠
2023-03-14

若要重载构造函数,需要具有不同签名的多个构造函数方法。

根据您的要求,它看起来像是在传递一个参数,并希望根据其值来决定执行流。

为此,您可以创建两个不同的方法,可以像您正在做的那样,根据单个构造函数方法中的条件相应地调用它们,但是将this的调用更改为常规方法。

 类似资料:
  • 问题内容: 我读过一些文章和书籍,几乎总是避免使用它。我知道为什么会这样,但是使用String(String)构造函数有什么用吗?我不认为有,也没有其他证据,但是我想知道SO社区中的任何人是否知道使用。 问题答案: 这是一篇很好的文章:认为无用的String构造函数毕竟是有用的! 事实证明,在至少一种情况下,此构造函数实际上可以有用。如果您曾经看过String源代码,就会发现它不仅包含用于char

  • 问题内容: 如何使用call_user_func_array调用类的构造函数 这是不可能的: 因为如果构造函数具有参数,则 新的 将失败。 约束:我不控制必须实例化的类,也不能修改它们。 不要问我为什么要做这个疯狂的事情,这是一个疯狂的考验。 问题答案: 您可以像这样使用反射: 从PHP 5.6.0起,也可以将运算符用于此目的。

  • 问题内容: 构造函数何时被调用? 创建对象之前。 在对象创建期间。 创建对象之后。 问题答案: 分配对象内存,初始化具有初始值的字段变量,然后调用构造函数,但是其代码在对象超类的构造函数代码之后执行。

  • 问题内容: 以下代码向我返回错误信息: 我不明白。我的代码中的构造函数是第一条语句。我究竟做错了什么? 问题答案: 构造函数名称必须与类名称相同,因此请将类名称更改为或将构造函数名称更改为。 示例 (请注意,在Java中通常第一个字母是大写字母) :

  • 可能的重复: 为什么this()和super()必须是构造函数中的第一条语句? 我想要一个在Java的建筑链。例如,对于第一个构造函数,我有一个字符串作为参数,并在从参数字符串创建对象时调用第二个构造函数。 但是,我得到了一个错误“构造函数调用必须是构造函数中的第一条语句”错误。 我制作了一个在两个构造函数之间共享的公共代码,但我不确定这是绕过这个问题的唯一解决方案。 为什么Java要求构造函数调

  • 这个Super()的替代品是什么;我代码中的语句...因为它向我显示了一个名为:构造函数调用必须是构造函数中的第一个语句的错误。