2014-02-08 5 views
3

Прошло некоторое время с тех пор, как я сделал некоторую java-кодировку.Назначить возвращаемое значение новой переменной (Java)

Мне нужно создать приложение для бизнеса, который требует автоматизации (часть мастерской), которая, однако, не имеет отношения к моему вопросу ...

Я застрял на линии: customerList.add (заказчик); // (часть метода addCustomer в классе WCIA) Также мне впервые сообщают «Назначить возвращаемое значение новой переменной» как часть ошибки, поэтому не слишком уверенно, что это значит.

Код: Главная

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(); 
     } 
    } 
} 

Код: класс клиента:

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

где вы создавали экземпляр своего списка клиентов? – gipinani

ответ

9

Вам нужно создать экземпляр ArrayList, прежде чем можно назначить в него элементы. Вероятно, вы получаете NullPointerException, это моя догадка.

Изменить эту строку:

private final ArrayList customerList = null; 

в

private final ArrayList customerList = new ArrayList(); 

Если решить хотя бы эту проблему. Я не читал остальную часть вашего кода, поэтому я не уверен, существуют ли другие проблемы.

+0

Спасибо, что решил все это, я чувствую себя немного глупо. – InARGS

1

customerList является null и никогда не инициализирован. Создайте объект типа ArrayList и назначьте его этой переменной, прежде чем пытаться добавить к нему.

0

Вы должны объявить List с явным определением типа его элементов (parametrized list):

private final List<Customer> customerList; 

Таким образом, вы можете get rid of casting к Customer в:

Customer cus = customerList.get(x); 

Наконец, как хорошо практиковать, инициализировать его в конструкторе :

public WCIA() 
{ 
    customerList = new ArrayList<>(); 
} 
Смежные вопросы