Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在Java中将值传递给ArrayList_Java_Class_Arraylist - Fatal编程技术网

无法在Java中将值传递给ArrayList

无法在Java中将值传递给ArrayList,java,class,arraylist,Java,Class,Arraylist,我有一个用于汽车拍卖的bidder类,当用户单击submit按钮时,似乎无法将jtextfield值传递到数组中。投标人类别为: package abc; import java.util.ArrayList; public class Bidder extends User{ private String firstName, lastName, street, city, postcode, tel, eMail, cardMake, cardNo, expDate; private

我有一个用于汽车拍卖的bidder类,当用户单击submit按钮时,似乎无法将jtextfield值传递到数组中。投标人类别为:

package abc;

import java.util.ArrayList;


public class Bidder extends User{
private String firstName, lastName, street, city, postcode, tel, eMail, cardMake, cardNo, expDate;
private int houseNo, csvNo;

public Bidder(){

}

public Bidder(String UN, String UP, int UT, String FN, String LN, int HN,
        String S, String C, String P, String T, String EM, String CM, String CN, String ED, int CSV ){
super (UN, UP, UT);

firstName = FN;
lastName = LN;
houseNo = HN;
street = S;
city = C;
postcode = P;
tel = T;
eMail = EM;
cardMake = CM;
cardNo = CN;
expDate = ED;
csvNo = CSV;
}
static ArrayList<Bidder> BidderArray = new ArrayList<Bidder>();


}
问候


Lee

当您应该传递
checkCSV
时,您正在传递
csv
作为最后一个参数。我强烈建议您摆脱那个庞大的构造函数,改用setter。它将使代码更易于维护,并将大大有助于避免此类错误

然后,该类可能如下所示:

public class Bidder extends User{

    private String firstName, lastName, street, city, postcode, tel, eMail, cardMake, cardNo, expDate;
    private int houseNo, csvNo;

    public Bidder(){

    }

    public void setFirstName(String name) {
        this.firstName = name;
    }

    public void setLastPassword(String password) {
        this.lastName = password;
    }

    // etc. for all the fields.

    public void setCSV(int csv) {
        this.csvNo = csv;
    }

    // Setters for userName, userPassword, and userType go in class User

    static ArrayList<Bidder> BidderArray = new ArrayList<Bidder>();

}
private void submitActionPerformed(java.awt.event.ActionEvent evt) {     

    boolean validEntries = true;
    String sVal;
    int iVal;
    Bidder bidder2 = new Bidder();

    sVal = userName.getText();
    if (sVal.equals(""))
    {
        validEntries = false;
        userName.setBackground(Color.red);
    } else {
        bidder2.setUserName(sVal);
    }
    sVal = password.getText();
    if (sVal.equals(""))
    {
        validEntries = false;
        password.setBackground(Color.red);
    } else {
        bidder2.setUserPassword(sVal);
    }

    // for an int value:
    try{
        iVal = Integer.parseInt(csv.getText());
        bidder2.setCSV(iVal);
    }
    catch (Exception error)
    {
        validEntries = false;
        userType.setBackground(Color.red);
    }

    // etc. for all the other fields

    if (validEntries) {
        Bidder.BidderArray.add(bidder2);
    }
}

当您应该传递
checkCSV
时,您正在传递
csv
作为最后一个参数。我强烈建议您摆脱那个庞大的构造函数,改用setter。它将使代码更易于维护,并将大大有助于避免此类错误

然后,该类可能如下所示:

public class Bidder extends User{

    private String firstName, lastName, street, city, postcode, tel, eMail, cardMake, cardNo, expDate;
    private int houseNo, csvNo;

    public Bidder(){

    }

    public void setFirstName(String name) {
        this.firstName = name;
    }

    public void setLastPassword(String password) {
        this.lastName = password;
    }

    // etc. for all the fields.

    public void setCSV(int csv) {
        this.csvNo = csv;
    }

    // Setters for userName, userPassword, and userType go in class User

    static ArrayList<Bidder> BidderArray = new ArrayList<Bidder>();

}
private void submitActionPerformed(java.awt.event.ActionEvent evt) {     

    boolean validEntries = true;
    String sVal;
    int iVal;
    Bidder bidder2 = new Bidder();

    sVal = userName.getText();
    if (sVal.equals(""))
    {
        validEntries = false;
        userName.setBackground(Color.red);
    } else {
        bidder2.setUserName(sVal);
    }
    sVal = password.getText();
    if (sVal.equals(""))
    {
        validEntries = false;
        password.setBackground(Color.red);
    } else {
        bidder2.setUserPassword(sVal);
    }

    // for an int value:
    try{
        iVal = Integer.parseInt(csv.getText());
        bidder2.setCSV(iVal);
    }
    catch (Exception error)
    {
        validEntries = false;
        userType.setBackground(Color.red);
    }

    // etc. for all the other fields

    if (validEntries) {
        Bidder.BidderArray.add(bidder2);
    }
}
应该是,检查最后一个参数

idder bidder2 = new Bidder(userName, password, userType, firstName, lastName, houseNo, 
            street, city, postcode, tel, eMail, cardType, cardNo, expDate, checkCSV );
应该是,检查最后一个参数

idder bidder2 = new Bidder(userName, password, userType, firstName, lastName, houseNo, 
            street, city, postcode, tel, eMail, cardType, cardNo, expDate, checkCSV );

您的代码似乎没有问题,可能是一些未捕获的异常或从数组中读取项时出现的问题。运行此操作时会发生什么?有错误吗?值是否为空?如果进行调试,
用户名
密码
等的值在传递给构造函数之前是否正确?如何调用
submitActionPerformed
?还是有人叫它?(作为一个ised内部
submitActionPerformed
,您不应该仅在
validEntries
true
时才构造和插入新的
投标人对象吗?)您的代码似乎正常,可能是一些未捕获的异常或从数组中读取项目时出现的问题。运行此操作时会发生什么?有错误吗?值是否为空?如果进行调试,
用户名
密码
等的值在传递给构造函数之前是否正确?如何调用
submitActionPerformed
?还是有人叫它?(作为一个ised,内部执行的
提交
,只有当
validEntries
true
?)时,您不应该构建和插入新的
投标人
对象吗)我已经尝试了检查CSV,这不起作用。你的想法是什么?“我也不必使用支票屋吗?”@LeeChant-是的。事实上,我注意到您似乎在使用文本字段而不是所有参数的值(您使用的是
userName
而不是
checkUserName
,等等),请修复所有这些字段,然后应该进行编译。但是,您确实应该切换到使用setter。我将更新我的答案,以显示这将如何工作的开始。我将尝试一下@TedHopp,很想看看二传手将如何工作too@LeeChant-我为
csvNo
添加了setter和示例用法来显示模式。你只需要使用
int
类型而不是
String
。谢谢@TedHopp,它在其他地方引起了一些问题,但我已经设法解决了它们,它正在工作。我已经尝试了检查CSV,这不起作用。你的想法是什么?“我也不必使用支票屋吗?”@LeeChant-是的。事实上,我注意到您似乎在使用文本字段而不是所有参数的值(您使用的是
userName
而不是
checkUserName
,等等),请修复所有这些字段,然后应该进行编译。但是,您确实应该切换到使用setter。我将更新我的答案,以显示这将如何工作的开始。我将尝试一下@TedHopp,很想看看二传手将如何工作too@LeeChant-我为
csvNo
添加了setter和示例用法来显示模式。你只需要使用
int
类型,而不是
String
。谢谢@TedHopp,它在其他地方引起了一些问题,但我已经设法解决了这些问题,它正在工作