Java 如何将调用和解析值正确写入接受Calendar.Builder类型输入变量的setter方法
无法通过使用类实例调用setter方法(setChoolStartDate())来正确更新日期字段。类工作要求SchoolStartDate和SchoolEndDate必须为Builder类型。 问题:能否实现以下目标Java 如何将调用和解析值正确写入接受Calendar.Builder类型输入变量的setter方法,java,calendar,Java,Calendar,无法通过使用类实例调用setter方法(setChoolStartDate())来正确更新日期字段。类工作要求SchoolStartDate和SchoolEndDate必须为Builder类型。 问题:能否实现以下目标 public static void main(String[] args) { School obj1 = new School(); obj1.setSchoolStartDate(SchoolStartDate); 完整代码如下: impo
public static void main(String[] args) {
School obj1 = new School();
obj1.setSchoolStartDate(SchoolStartDate);
完整代码如下:
import java.util.Calendar.Builder;
import java.util.List;
public class School {
private String SchoolName;
Builder SchoolStartDate;
Builder SchoolEndDate;
private List<Frequency> SchoolFrequency;
//Getters and setter methods for the variables
public void setSchoolName(String SchoolName) {
this.SchoolName = SchoolName;
}
public String getSchoolName() {
return SchoolName;
}
public void setSchoolStartDate(Builder SchoolStartDate) {
this.SchoolStartDate = SchoolStartDate;
}
public Builder getSchoolStartDate() {
return SchoolStartDate;
}
public void setSchoolEndDate(Builder SchoolEndDate) {
this.SchoolEndDate = SchoolEndDate;
}
public Builder getSchoolEndDate() {
return SchoolEndDate;
}
public void setSchoolFrequency(List<Frequency> SchoolFrequency) {
this.SchoolFrequency = SchoolFrequency;
}
public List<Frequency> getSchoolFrequency() {
return SchoolFrequency;
}
// @overloaded constructor 1- parameterized
/**
* @param SchoolName
* @param SchoolStartDate
* @param SchoolEndDate
* @param SchoolFrequency
*/
public School(String SchoolName, Builder SchoolStartDate, Builder SchoolEndDate,
List<Frequency> SchoolFrequency) {
this.SchoolName = SchoolName;
this.SchoolStartDate = SchoolStartDate;
this.SchoolEndDate = SchoolEndDate;
this.SchoolFrequency = SchoolFrequency;
}
// @overloaded constructor 2- default
public School() {
}
import java.util.Calendar.Builder;
导入java.util.List;
公立学校{
私有字符串学名;
开始日期;
截止日期;
私人名单学校频率;
//变量的getter和setter方法
public void setSchoolName(字符串SchoolName){
this.SchoolName=学校名称;
}
公共字符串getSchoolName(){
返回学名;
}
公共无效设置学校开始日期(建筑商学校开始日期){
this.SchoolStartDate=SchoolStartDate;
}
公共生成器getSchoolStartDate(){
返回学校开始日期;
}
public void setSelectLendDate(生成器SchoolEndDate){
this.SchoolEndDate=SchoolEndDate;
}
公共生成器getSchoolEndDate(){
返回学校结束日期;
}
公共无效设置选择频率(列出学校频率){
this.SchoolFrequency=学校频率;
}
公共列表getSchoolFrequency(){
返校频率;
}
//@重载构造函数1-参数化
/**
*@param SchoolName
*@param schooltdate
*@param SchoolEndDate
*@param学校频率
*/
公立学校(字符串SchoolName、Builder SchoolStartDate、Builder SchoolEndDate、,
列表(频率){
this.SchoolName=学校名称;
this.SchoolStartDate=SchoolStartDate;
this.SchoolEndDate=SchoolEndDate;
this.SchoolFrequency=学校频率;
}
//@重载构造函数2-默认值
公立学校(){
}
要么你的老师误解了,要么你误解了课堂作业。将日期表示为Calendar.Builder
没有任何意义。此外,Calendar
类设计糟糕且过时,因此我们不应该使用它,更不用说教授它,这包括不使用嵌套的Calendar.Builder
class
java.time
改为使用java.time中的LocalDate
表示日期。这不会带来任何问题。例如(未测试):
使用如下示例:
School obj1 = new School();
obj1.setStartDate(LocalDate.of(2019, Month.SEPTEMBER, 1));
课堂作业要求SchoolStartDate和SchoolEndDate必须是Builder类型。这是一个非常特殊的要求。而且,由于
日历
类设计不良且早已过时,当然不应该再在任何类中教授。您的主
方法的预期结果是什么?特别是调用setSchoolStartDate
后,obj1
的开始日期应该有ch值吗?期望学校类的实例(obj1)可以更新所有的setSchoolStartDate并更新日期。我不理解您的答案。可能是因为您不理解我的问题?
School obj1 = new School();
obj1.setStartDate(LocalDate.of(2019, Month.SEPTEMBER, 1));