我很難找到如何從另一個類訪問ArrayList。我讀了數百個類似的主題,但無法弄清楚我正在嘗試做什麼。我有下面的setLoginChoice應該從登錄類讀取ArrayList。我也想動態地創建ArrayList,以便可以用來自用戶的新條目進行更新。我想知道爲什麼當我閱讀ArrayList給我空值。從不同的類訪問ArrayList
編輯
也許我愚蠢的,但我從理解,我創建了ArrayList的是基於客戶的方法嗎?(有相同數量的參數)。所以當我試圖讀取「apostcode」(從數組中的每個列表中的一個元素)時,我實際上是從方法「Customer」中讀取「apostcode」,它給了我一個空值。什麼是正確的方式來做到這一點:)?
public class Customer {
private static String customerId;
private static String firstName, lastName;
private static String address, dateOfBirth, telephoneNumber, cprNumber;
private static String userName, password, logInCredentials;
private static int postCode;
String auserName;
String apassword;
String apostCode;
String adateOfBirth ;
String afirstName ;
String alastName ;
String aaddress ;
public Customer (String afirstName,String aaddress ,String alastName, int apostCode, String acprNumber, String atelephoneNumber, String adateOfBirth , String auserName, String apassword)
{
adateOfBirth = dateOfBirth;
afirstName = firstName;
alastName = lastName;
apostCode = postCode;
aaddress = address;
acprNumber = cprNumber;
atelephoneNumber = telephoneNumber;
apassword = password;
auserName = userName;
}
public static boolean setLoginChoice (int choiceForLogIn) {
ArrayList <Customer> myUsers = (new Login()).login();
Scanner input = new Scanner(System.in);
System.out.println("Enter your username: ");
inputUsername = input.nextLine();
System.out.println("Enter your password: ");
inputPassword = input.nextLine();
System.out.println("before");
for(int i = 0; i < myUsers.size(); i++){
System.out.println("loopfor");
System.out.println(myUsers.get(i).apostCode);
/*if(myUsers.get(i).auserName.compareTo(getInputuserName()) == 0 && myUsers.get(i).apassword.compareTo(getInputPassword()) == 0)
{
System.out.println("Welcome");
return true;
}else {
System.out.println("insideloop");
}*/
}
System.out.println("after");
return false;
}
public class Login{
ArrayList<Customer> myUsers;
public ArrayList<Customer> login() {
// TODO Auto-generated method stub
ArrayList<Customer> myUsers = new ArrayList<Customer>();
Customer d = new Customer(null, null, null, 0, null, null, null, null, null);
myUsers = new ArrayList<Customer>();
myUsers.add(new Customer("User1", "bane", "User1nick", 7444, "111116-4421", "55555555", "11/05/1993", "User3", "Joe"));
myUsers.add(new Customer("User2", "bane", "User2nick", 7444, "111116-4021", "55555555", "11/05/1993", "User3", "Stefan2"));
myUsers.add(new Customer("User3", "bane", "User3nick", 7444, "111116-4021", "55555555", "11/05/1993", "User3", "Adi2"));
myUsers.add(new Customer(d.getfirstName(), d.getAddress(), d.getlastName(), d.getPostCode(), d.getCprNumber(), d.getTelephoneNumber(), d.getdateOfBirth(), d.getUsername(), d.getPassword()));;
return myUsers;
}
}
客戶爲什麼要擴展登錄? – WilomGfx
好的,我做了一些改變,我忘了刪除,我嘗試了不同的幾十種方法..我編輯我的帖子 – Stefan
是變量,例如, 'ausername'私人? –