在我的程序中,我读取一个固定长度的文件,将每个字符串存储在一个局部变量中,然后将每个值存储到一个类类型数组列表中.为了创建数组列表的对象,我使用了包含所有变量的参数构造函数.以下代码演示了这一点.
String a = "text1";
String b = "text2";
SampleModel sm = new SampleModel(a,b);
ArrayList<SampleModel> sampleList = new ArrayList<>();
sampleList.add(sm);
Run Code Online (Sandbox Code Playgroud)
我觉得这绝对正确但我的同事让我把它改成一个没有arg的构造函数,而是调用getter和setter.那将是如下.
SampleModel sm = new SampleModel();
ArrayList<SampleModel> sampleList = new ArrayList<>();
String a = "text1";
String b = "text2";
sm.setA(a);
sm.setB(b);
sampleList.add(sm);
Run Code Online (Sandbox Code Playgroud)
有没有理由比参数构造函数更喜欢没有arg构造函数?(我的程序有大约15个变量)
这取决于课程的使用方式.
例如,一个不可变类需要一个带参数的构造函数,而不需要setter.
但是Java Bean需要一个无参数的构造函数和setter.
有些事情需要考虑: