调用其他构造函数的构造函数会出错

时间:2016-08-26 14:54:07

标签: java javafx

这似乎应该可行。这是作为JavaFX应用程序的一部分编译的。我有几个具有不同参数的构造函数类,但实际上它们彼此非常相似。

第一个是String, String, String构造函数,第二个是String, String, String, int。我只想写String, String, String,然后对String, String, String, int变体进行微调,并调用原始构造函数。我收到一条错误消息:

error: cannot find symbol
this.DataLineRegister(new_register_name,new_register_model,new_register_default);
   symbol: method DataLineRegister(String,String,String)
1 error

这是代码。我曾尝试使用和不使用this引用。另外,尝试了self,但我想这可能只是一个C事物。

public DataLineRegister (String new_register_name, String new_register_model, String new_register_default) {
  register_name = new_register_name;
  register_model = new_register_model;

  try {
     register_default = new BigInteger(new_register_default,16);
  } catch (NumberFormatException e) {
     System.out.println("Input is not a hexadecimal number");
  }
}

public DataLineRegister (String new_register_name, String new_register_model, String new_register_default, int new_bit_width) {
    defaultRegisterBitWidth = new_bit_width;
    this.DataLineRegister(new_register_name, new_register_model, new_register_default);
}

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

您需要改为编写this(new_register_name,new_register_model,new_register_default);。这是调用委托构造函数的正确语法。

另请注意,它必须是构造函数体中的第一个语句。