gpt4 book ai didi

java - 如何避免重载构造函数中的代码重复?

转载 作者:搜寻专家 更新时间:2023-11-01 04:02:12 24 4
gpt4 key购买 nike

假设我有一个接受输入的构造函数和另一个使用默认值的构造函数。然后两个构造函数以完全相同的方式继续处理这些数据。 (下面的示例。)在这种情况下,我有哪些选择可以避免代码重复?

(我读过帖子 how to reduce the code of constructor overloading ,其中最佳答案建议使用关键字“this”。在我的例子中,我想我需要使用“this”从之后的第二个构造函数调用第一个构造函数输入已被存储。然而,这会导致编译错误:“对此的调用必须是构造函数中的第一条语句”。)

示例代码:

public class A {
public A(String a) {
//process a
}
public A() {
String a = "defaultString";
//process a
}
}

编辑:我因为在类构造函数中使用输入对话框调用而大受指责(我知道这不是很好的做法)。所以我更改了代码示例以将讨论从这里转移开:)。

最佳答案

一种方法是使用初始化方法:

public class A {
public A(String a) {
init(a);
}
public A() {
String a = "defaultString";
init(a);
}
private void init(String a) {
//process a
}
}

关于java - 如何避免重载构造函数中的代码重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10489626/

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