2014-02-08 62 views
3

自從我完成了一些java編碼以來已經有一段時間了。將返回值賦給新的變量(Java)

我需要建立一個企業需要自動化(一車間的一部分),然而這無關我的問題的應用程序...

我卡就行了:customerList.add(客戶); //(WCIA類中的addCustomer方法的一部分) 也是我第一次告訴「將返回值賦給新變量」作爲錯誤的一部分,所以不太清楚這意味着什麼。

代碼:主要

import java.util.ArrayList; 


public class WCIA { 

    private final ArrayList customerList = null; 

    public static void main(String[] args) { 

     short s =002; 


     Customer arno = new Customer(); 
     arno.setName("Arno"); 
     arno.setId(s); 
     arno.setEmail("[email protected]"); 
     arno.setAddress("Somewhere"); 
     arno.setPhoneNum("0727855201"); 
     System.out.printf("%s",arno.getEmail()); 
    WCIA wcia = new WCIA(); 

    wcia.addCustomer(arno); 
    wcia.displayCustomers(); 
    } 

    public void addCustomer (Customer customer) 
    { 
     customerList.add(customer); // <---Problem over here 
    } 
    public void displayCustomers() 
    { 
     for(int x=0;x<customerList.size();x++) 
     { 
      Customer cus = (Customer) customerList.get(x); 
      cus.DisplayCustomer(); 
     } 
    } 
} 

代碼:Customer類:

public class Customer { 

    private short id; 
    private String name; 
    private String email; 
    private String phoneNum; 
    private String address; 

    public Customer() 
    { 

    System.out.println("Class initiated"); 
    } 




    public void DisplayCustomer() 
    { 
     System.out.append("Name : "+ name+"\n"); 
     System.out.append("ID : "+ id+"\n"); 
     System.out.append("Email : "+ email+"\n"); 
     System.out.append("Phone Number : "+ phoneNum+"\n"); 
     System.out.append("address : "+ address+"\n"); 
    } 

    public void setId(short id) { 
     this.id = id; 
    } 

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

    public void setEmail(String email) { 
     this.email = email; 
    } 

    public void setPhoneNum(String phoneNum) { 
     this.phoneNum = phoneNum; 
    } 

    public void setAddress(String address) { 
     this.address = address; 
    } 

    public short getId() { 
     return id; 
    } 

    public String getName() { 
     return name; 
    } 

    public String getEmail() { 
     return email; 
    } 

    public String getPhoneNum() { 
     return phoneNum; 
    } 

    public String getAddress() { 
     return address; 
    } 

} 
+0

你在哪裏實例化了你的customerList? – gipinani

回答

9

您需要實例ArrayList中之前,你可以指定元素了。你可能會得到NullPointerException,這是我的猜測。

改變這一行:

private final ArrayList customerList = null; 

private final ArrayList customerList = new ArrayList(); 

應至少解決了這個問題。我沒有閱讀其他代碼,所以我不確定是否存在其他問題。

+0

謝謝你解決了這一切,但我感覺有點無聊。 – InARGS

1

customerListnull並且從未初始化。創建一個類型爲ArrayList的對象,並在嘗試添加它之前將其分配給該變量。

0

你應該與它的元素類型的明確定義(parametrized list)宣佈List

private final List<Customer> customerList; 

這種方式可以get rid of castingCustomer在:

Customer cus = customerList.get(x); 

最後,好練習,初始化它在構造函數

public WCIA() 
{ 
    customerList = new ArrayList<>(); 
}