gpt4 book ai didi

java - 在声明后填充数组成员

转载 作者:行者123 更新时间:2023-11-29 06:29:10 25 4
gpt4 key购买 nike

我的类(class)有一个数组作为它的成员之一。在构造函数内部,我想将其成员填充到以下内容中。我该怎么做,它给我一个错误。

public class GetCurrentMonth {

Calendar now;
String[] monthNames;

/**
*
*/
public GetCurrentMonth() {
now = Calendar.getInstance();
monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
}

public String getMonth()
{
return monthNames[(now.get(Calendar.MONTH) + 1)];
}
}

我不想在构造函数中添加这些月份名称,因为我想遵循良好的编码习惯,并且我被告知所有初始化都应该在构造函数中完成。

String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};

最佳答案

首先,在构造函数中进行初始化不仅不是好的做法,实际上不好的做法,因为:

  • 你实际上必须编写一个构造函数(添加无用代码)
  • 字段应该是static final 如果它们在每个实例中都相同,比如月份
  • 实例字段应尽可能final,如果只有一种初始化方法,则在声明时初始化

最佳实践(包括遵守命名标准)表明您的类应如下所示:

public class GetCurrentMonth {
private static final String[] MONTH_NAMES = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
private final Calendar now = Calendar.getInstance();

public String getMonth() {
return MONTH_NAMES [(now.get(Calendar.MONTH) + 1)];
}
}

关于java - 在声明后填充数组成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42233150/

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