【发布时间】:2012-05-07 21:48:13
【问题描述】:
假设我有一个使用输入的构造函数和另一个使用默认值的构造函数。然后,两个构造函数都以完全相同的方式继续处理这些数据。 (下面的示例。)在这种情况下,我有哪些避免代码重复的选项?
(我已阅读帖子how to reduce the code of constructor overloading,其中最佳答案建议使用关键字“this”。就我而言,我想我需要使用“this”从第二个构造函数调用第一个构造函数输入已被存储。但这会导致编译错误:“调用 this 必须是构造函数中的第一个语句”。)
示例代码:
public class A {
public A(String a) {
//process a
}
public A() {
String a = "defaultString";
//process a
}
}
编辑:我因在类构造函数中使用输入对话框调用而大受打击(我知道这不是很好的做法)。因此,我更改了代码示例以将讨论引离这个:)。
【问题讨论】:
-
是否有原因提示用户输入值的行无法移出构造函数,然后所有调用都可以使用相同的构造函数?当您在构造函数中提示用户输入时,这会产生非常糟糕的代码气味。
-
注明。然而,这只是一个一次性的介绍性锻炼计划,我并不是很严格。
标签: java overloading code-duplication