2014-02-08 3 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 클래스 :

당신은 당신이 그것을에 요소를 할당 할 수 있습니다 전에 ArrayList의 인스턴스를 필요
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

. 제 생각에 아마 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 casting에서 Customer에 마지막으로

Customer cus = customerList.get(x); 

, 좋은 연습, 생성자에서 초기화하십시오. :

public WCIA() 
{ 
    customerList = new ArrayList<>(); 
} 
관련 문제