Java 带有字符串和生日日历的构造函数

Java 带有字符串和生日日历的构造函数,java,string,constructor,calendar,gregorian-calendar,Java,String,Constructor,Calendar,Gregorian Calendar,所以我们必须制作一个通讯录,上面有联系人的姓名、姓氏、地址、电子邮件、电话号码和生日。 当所有其他内容都保存为字符串时,生日必须是“日历”。到目前为止,我得到的是: public class PrivateContact extends Contact { private Calendar Geburtsdatum = (GregorianCalendar) Calendar.getInstance(); public PrivateContact(String Vorname, Strin

所以我们必须制作一个通讯录,上面有联系人的姓名、姓氏、地址、电子邮件、电话号码和生日。 当所有其他内容都保存为字符串时,生日必须是“日历”。到目前为止,我得到的是:

public class PrivateContact extends Contact {

private Calendar Geburtsdatum = (GregorianCalendar) Calendar.getInstance();

public PrivateContact(String Vorname, String Nachname, String Adresse,
        String Email, String Telnum, Calendar Geburtsdatum) {
    super(Vorname, Nachname, Adresse, Email, Telnum);
    this.Geburtsdatum = Geburtsdatum;       
}
但我的问题是,在测试类中,带有字符串、字符串、…、日历的构造函数的格式不起作用。Eclipse总是提供“帮助”,我必须将构造函数的类型从string、…、calendar更改为string、…、string,但我不想这样做。 我知道“01.01.1900”是一个字符串,但我需要它的日历类型,因此如何更改它?我如何告诉它必须是日历类型? 下面是如何使用测试类中的构造函数:

Contact person1 = new PrivateContact("Max", "Muster", "Fooville", "maxi@student.at", "0123456789", "01.01.1900");
我真的希望有人能帮助我

它正在工作,但“01.01.1900”是一个字符串,不是日历的实例

查看官方教程的这一部分,了解与日历相关的资料:

使用以下方法实例化日历,然后将其传递给测试

Calendar cal = Calendar.getInstance();
cal.set(Calendar.DATE,1);
cal.set(Calendar.MONTH,1);
cal.set(Calendar.YEAR,1900);
另一个选项是将构造函数更改为接受字符串,然后在构造函数或其他实用程序中转换为日历

public PrivateContact(String Vorname, String Nachname, String Adresse,
    String Email, String Telnum, String sGeburtsdatum) {
    super(Vorname, Nachname, Adresse, Email, Telnum);
DateFormat df = new SimpleDateFormat("dd.mm.yyyy");
Date date = df.parse(sGeburtsdatum);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
this.Geburtsdatum = cal;       
}

你为什么不使用
日期
作为
生日
而不是
日历
?是的,我会的,但这项工作要求它必须是日历类型..我知道,但我怎么能改变它??如何判断日期必须用作日历类型?实例化日历,或Ankit Lamba建议的日期。谢谢,但由于它用作通讯录,使用is的人必须能够与构造函数创建新联系人。我不能对存储在那里的每个联系人都使用这个表单。在构造函数中实现这个转换怎么样。更改PrivateContact构造函数以接受字符串而不是Calndar,并使用以下代码转换为日历。字符串sDate=“01.01.1900”;DateFormat df=新的SimpleDateFormat(“dd.mm.yyyy”);日期=df.parse(sDate);Calendar cal=Calendar.getInstance();校准设定时间(日期);