下面的程序是教程的一部分。我在这里有些困惑 以下几行:
GregorianCalendar gCal = new GregorianCalendar();
gCal.add(GregorianCalendar.YEAR, 1);
this.expiryDate = gCal.getTime();
上面的代码不应该是这样的:
GregorianCalendar gCal = new GregorianCalendar();
SomeDatatype variable = gCal.add(GregorianCalendar.YEAR, 1);
this.expiryDate = variable.getTime();
以下是原始计划的一部分:
package models;
import java.util.Date;
import java.util.GregorianCalendar;
import utilities.GenderType;
public class Customer {
private String title;
private String firstName;
private String surname;
private String address;
private String phoneNumber;
private String email;
private int customerNumber;
private GenderType gender;
private boolean isvalid;
private Date expiryDate;
public Customer(String title, String firstName, String surname, String address,
String phoneNumber, String email, int customerNumber, GenderType gender) {
setName(title, firstName, surname);
this.address = address;
this.phoneNumber=phoneNumber;
this.email = email;
this.customerNumber = customerNumber;
this.gender = gender;
this.isvalid = true;
GregorianCalendar gCal = new GregorianCalendar();
gCal.add(GregorianCalendar.YEAR, 1);
this.expiryDate = gCal.getTime();
}
}
答案 0 :(得分:1)
在GregorianCalendar
类中,add()
方法返回void。
原因是它对GregorianCalendar
的内部数据执行操作。它将定义的时间部分添加到其中。
您无需从add()
方法返回任何内容。调用后,相同的对象已经更新,因此,您只需获取它包含的新时间值。
答案 1 :(得分:0)
GregorianCalendar的add方法没有任何返回类型。 根据java doc,它具有以下签名。
public void add(int field, int amount)
它的返回类型为void意味着它没有返回任何值,这就是为什么你不能这样做的原因。
SomeDatatype variable =gCal.add(GregorianCalendar.YEAR, 1);