Java 如何将调用和解析值正确写入接受Calendar.Builder类型输入变量的setter方法

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

无法通过使用类实例调用setter方法(setChoolStartDate())来正确更新日期字段。类工作要求SchoolStartDate和SchoolEndDate必须为Builder类型。 问题:能否实现以下目标

    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));