我想在我的类中使用构造函数重载,我还想定义一些final变量。
我想要的结构是这样的:
public class MyClass{
private final int variable;
public MyClass(){
/* some code and
other final variable declaration */
variable = 0;
}
public MyClass(int value){
this();
variable = value;
}
}
我想调用 this() 以避免重写我的第一个构造函数中的代码,但我已经定义了最终变量,所以这会产生编译错误。 我想到的最方便的解决方案是避免使用 final 关键字,但这当然是最糟糕的解决方案。
在多个构造函数中定义变量并避免代码重复的最佳方法是什么?
最佳答案
你快到了。重写构造函数,使默认构造函数调用值为 0 的重载构造函数。
public class MyClass {
private final int variable;
public MyClass() {
this(0);
}
public MyClass(int value) {
variable = value;
}
}
关于java - 最终变量和构造函数重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49128840/