2013-10-27 20 views
12

Tôi muốn thêm một đối tượng vào một ArrayList, nhưng mỗi lần tôi thêm một đối tượng mới vào một số ArrayList với 3 thuộc tính: objt(name, address, contact), tôi gặp lỗi.Cách thêm đối tượng vào một ArrayList trong Java

import java.util.ArrayList; 
import java.util.Scanner; 
public class mainClass { 
    public static void main(String args[]){ 

     Scanner input = new Scanner(System.in); 
     System.out.println("Plz enter Name : "); 
     String name = input.nextLine(); 
     System.out.println("Plz enter Address : "); 
     String address = input.nextLine(); 
     System.out.println("Plz enter ContactNo : "); 
     String contact = input.nextLine(); 


     ArrayList<Data> Contacts = new ArrayList<Data>(); 
     Data objt = new Data(); 
     Contacts.add(objt.Data(name, address, contact)); 
    } 
} 

Ở đây, Data là lớp mà tôi đang cố gắng để tạo ra một đối tượng và vượt qua nó để một ArrayList.

public class Data { 

     private String name = ""; 
     private String address = ""; 
     private String cell = ""; 


     public void Data(String n, String a, String c){ 

      name = n; 
      address = a; 
      cell = c; 
     } 
     public void printData(){ 

      System.out.println("Name\tAddress\tContactNo"); 
      System.out.println(name + "\t" + address + "\t" + cell); 
     } 
} 
+1

Có gì với dấu chấm phẩy nổi? –

+0

Bạn gặp phải lỗi gì? – Raedwald

Trả lời

30

Bạn cần phải sử dụng các nhà điều hành new khi tạo đối tượng

Contacts.add(new Data(name, address, contact)); // Creating a new object and adding it to list - single step 

hoặc khác

Data objt = new Data(name, address, contact); // Creating a new object 
Contacts.add(objt); // Adding it to the list 

và constructor của bạn không nên chứa void. Khác nó trở thành một phương pháp trong lớp học của bạn.

public Data(String n, String a, String c) { // Constructor has the same name as the class and no return type as such 
+0

Ngoài ra OP nên viết một hàm tạo trong lớp của mình. –

+0

cảm ơn rất nhiều sir @ R.J .. – Johnfranklien

1

Hãy thử điều này một:

Data objt = new Data(name, address, contact); 
Contacts.add(objt); 
0

Bạn phải sử dụng toán tử new đây để nhanh chóng. Ví dụ:

Contacts.add(new Data(name, address, contact)); 
-1

thay đổi ngày đến Object mà là giữa ngoặc

+2

Ngày nào? Điều này không giống như một giải pháp cho tôi. – Jonathan

+0

Tôi nghĩ rằng chúng có nghĩa là 'Dữ liệu' nhưng không có vẻ người dùng này đang quay trở lại. –

1

Contacts.add (objt.Data (tên, địa chỉ, liên lạc));

Đây không phải là cách hoàn hảo để gọi hàm tạo. Các nhà xây dựng được gọi là tại thời điểm tạo đối tượng tự động. nếu không có lớp khởi tạo java Tạo ra hàm tạo riêng của nó.

cách chính xác là:

liệu object1 = Dữ liệu mới (tên, địa chỉ, liên lạc);

// object Tạo.

Contacts.add (object1);

// thêm đối tượng dữ liệu vào đối tượng ArrayList Danh bạ.

Các vấn đề liên quan