我有这四个类。 我想要做的是通过使用customerID向“用户”添加“Liftcard”。这是我到目前为止,但它似乎并没有工作。我很确定问题出在窗口类的public void regLiftCard()方法中。任何人都知道我应该怎么做? (即时通讯使用的ArrayList)将两个对象相互连接
用户类:
public class User implements Serializable {
private String surename, firstName, gender, age;
private int customerID;
public LiftCard liftCard;
User next;
同一类:
public LiftCard getLiftCard(){
return liftCard;
}
public void setLiftCard(LiftCard liftC){
liftCard = liftC;
}
窗口类:
public void regLiftCard()
{
int cardtype = Integer.parseInt(cardTypeField.getText());
int customerID = Integer.parseInt(findCustomerField.getText());
if(cardtype == 1 || cardtype == 2 || cardtype == 3 || customerID != 0)
{
//JOptionPane.showMessageDialog(this, "Du må fylle inn hvilket kort du skal ha 1/2/3");
try
{
User uu = userA.findById(customerID);
if (uu != null) {
if (uu.getLiftCard() != null) {
JOptionPane.showMessageDialog(this, "Kunden har allerede kort");
}
}
String fornavn = firstNameField.getText();
String etternavn = surenameField.getText();
String alder = ageField.getText();
String kjonn = genderField.getText();
LiftCard c = new LiftCard(cardNumber, cardtype);
if (userA.findByCardNumber(cardNumber) == null) {
uu.setLiftCard(c);
} else {
uu = new User(customerID, fornavn, etternavn, alder, kjonn);
}
JOptionPane.showMessageDialog(this, "Nytt kort/kunde er registrert");
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(this, "Feil i nummerformat!");
}
}
}
UserArchive类:
public void regLiftCard(User u) {
list.add(u);
}
Liftcard类:
private int cardNumber, cardType;
public LiftCard(int cN, int cT)
{
cardNumber = cN;
cardType = cT;
}
public int getCardNumber(){
return cardNumber;
}
public int getcardType(){
return cardType;
}
public String toString()
{
return cardNumber + "\t" + cardType;
}
}
定义“不起作用”。到目前为止,它只是一个代码转储,对预期或实际行为的解释为零。不相关,但考虑与格式,支撑位置等一致。 – 2013-04-09 14:10:28
考虑将'liftCard'字段设置为'private'和'final',并将其设置在'User'类的构造函数中。 – 2013-04-09 14:12:41
对不起,我真的很新。我打电话给regLiftCard时要做的是将新卡分配给用户。所以如果我打印我的顾客名单,它会说这样的:customerID有LiftcardID。我吮吸解释,对不起。 – user2248471 2013-04-09 14:16:10