Return ArrayList , 结合 get 方法输出
Return ArrayList , Output in combination with get Methods
我认为这会奏效,但遗憾的是它没有。我收到错误-
The method add(CustomerInfo) in the type ArrayList is not
applicable for the arguments (String)
我的目标是 return 一个 Arraylist
并使用 get 方法进行访问。当我为 Arraylist
使用字符串时,我不能使用 arr.get(i).userID, ....FirstName ...
Class CustomerInfo.java
public class CustomerInfo {
private static Connection conn = null;
private static ResultSet resultSet = null;
public String UserID;
public String FirstName;
public String SecondName;
public ArrayList<CustomerInfo> findCustomer (String userID) throws SQLException {
conn = null;
PreparedStatement pstmt = null;
try {
JDBCConnection jdbcConn = new JDBCConnection();
conn = jdbcConn.openConnection();
ArrayList<CustomerInfo> customerList new ArrayList<CustomerInfo();
String sql = "SELECT USERID FROM TAB0025 WHERE USERID = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, userID);
resultSet = pstmt.executeQuery();
while (resultSet.next()) {
customerList.add(resultSet.getString("USERID"));
customerList.add(resultSet.getString("FIRSTNAME"));
customerList.add(resultSet.getString("SECONDNAME"));
this.UserID = resultSet.getString("USERID");
this.FirstName = resultSet.getString("FIRSTNAME");
this.SecondName resultSet.getString("SECONDNAME");
}
return customerList;
} catch (Exception e) {
throw e;
}
finally {
conn.close();
}
public String getUserID() {
return this.UserID;
}
public String getFirstname() {
return this.FirstName;
}
public String getSecondName() {
return this.SecondName;
}
}
Class InputReader.java
// ...
if (CustomerInfo.ExsistUserID(this.UserID)) {
CustomerInfo edit = new CustomerInfo();
ArrayList<CustomerInfo> arr = new ArrayList<CustomerInfo>();
arr = edit.findCustomer(this.UserID);
System.out.println("UserID: "+ arr.get(0).getUserID() + " First Name: "arr.get(0).getFirstName() + " Second Name: " arr.get(0).getSecondName());
}
// ...
错误在这三行:
customerList.add(resultSet.getString("USERID"));
customerList.add(resultSet.getString("FIRSTNAME"));
customerList.add(resultSet.getString("SECONDNAME"));
如上所示,resultSet.getString()
方法 returns 一个 String
对象,但是您的 ArrayList 是 CustomerInfo
类型对象的容器,因此您需要创建一个新建 CustomerInfo
对象,用 ResultSet 中的值填充其字段,然后将该对象添加到 ArrayList,如下所示:
custInfo = new CustomerInfo();
custInfo.UserID = resultSet.getString("USERID");
custInfo.FirstName = resultSet.getString("FIRSTNAME");
custInfo.SecondName = resultSet.getString("SECONDNAME");
customerList.add(custInfo);
我认为这会奏效,但遗憾的是它没有。我收到错误-
The method add(CustomerInfo) in the type ArrayList is not applicable for the arguments (String)
我的目标是 return 一个 Arraylist
并使用 get 方法进行访问。当我为 Arraylist
使用字符串时,我不能使用 arr.get(i).userID, ....FirstName ...
Class CustomerInfo.java
public class CustomerInfo {
private static Connection conn = null;
private static ResultSet resultSet = null;
public String UserID;
public String FirstName;
public String SecondName;
public ArrayList<CustomerInfo> findCustomer (String userID) throws SQLException {
conn = null;
PreparedStatement pstmt = null;
try {
JDBCConnection jdbcConn = new JDBCConnection();
conn = jdbcConn.openConnection();
ArrayList<CustomerInfo> customerList new ArrayList<CustomerInfo();
String sql = "SELECT USERID FROM TAB0025 WHERE USERID = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, userID);
resultSet = pstmt.executeQuery();
while (resultSet.next()) {
customerList.add(resultSet.getString("USERID"));
customerList.add(resultSet.getString("FIRSTNAME"));
customerList.add(resultSet.getString("SECONDNAME"));
this.UserID = resultSet.getString("USERID");
this.FirstName = resultSet.getString("FIRSTNAME");
this.SecondName resultSet.getString("SECONDNAME");
}
return customerList;
} catch (Exception e) {
throw e;
}
finally {
conn.close();
}
public String getUserID() {
return this.UserID;
}
public String getFirstname() {
return this.FirstName;
}
public String getSecondName() {
return this.SecondName;
}
}
Class InputReader.java
// ...
if (CustomerInfo.ExsistUserID(this.UserID)) {
CustomerInfo edit = new CustomerInfo();
ArrayList<CustomerInfo> arr = new ArrayList<CustomerInfo>();
arr = edit.findCustomer(this.UserID);
System.out.println("UserID: "+ arr.get(0).getUserID() + " First Name: "arr.get(0).getFirstName() + " Second Name: " arr.get(0).getSecondName());
}
// ...
错误在这三行:
customerList.add(resultSet.getString("USERID"));
customerList.add(resultSet.getString("FIRSTNAME"));
customerList.add(resultSet.getString("SECONDNAME"));
如上所示,resultSet.getString()
方法 returns 一个 String
对象,但是您的 ArrayList 是 CustomerInfo
类型对象的容器,因此您需要创建一个新建 CustomerInfo
对象,用 ResultSet 中的值填充其字段,然后将该对象添加到 ArrayList,如下所示:
custInfo = new CustomerInfo();
custInfo.UserID = resultSet.getString("USERID");
custInfo.FirstName = resultSet.getString("FIRSTNAME");
custInfo.SecondName = resultSet.getString("SECONDNAME");
customerList.add(custInfo);