2013-10-27 27 views
12

ArrayListにオブジェクトを追加しますが、新しいオブジェクトをArrayListの3つの属性(objt(name, address, contact))に追加するたびにエラーが発生します。ここでオブジェクトをJavaのArrayListに追加する方法

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

Dataは、私は、オブジェクトを作成し、それが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

フローティングセミコロンとは何ですか? –

+0

どのようなエラーがありましたか? – Raedwald

答えて

30

あなたがオブジェクトを作成するときにnew演算子を使用する必要が

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

か、他

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

とあなたのコンストラクタはvoidを含めることはできません。そうでなければ、あなたのクラスのメソッドになります。

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

また、OPは自分のクラスにコンストラクタを書き込む必要があります。 –

+0

ありがとうalot sir @ R.J .. – Johnfranklien

1

、このいずれかを試してください:あなたがインスタンス化するために、ここにnew演算子を使用する必要が

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

。例えば:

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

変化日括弧の間にあるオブジェクトへ

+2

何日?これは私の解決策のようには見えません。 – Jonathan

+0

私は彼らが 'データ'を意味したと思うが、このユーザーは戻ってくるようには見えない。 –

1

Contacts.add(objt.Data(名前、住所、連絡先))。

これはコンストラクタを呼び出すのに最適な方法ではありません。コンストラクタはオブジェクト作成時に自動的に呼び出されます。コンストラクタがない場合はjavaクラス独自のコンストラクタを作成します。

正しい方法は次のとおりです。

データオブジェクト1 =新しいデータ(名前、住所、連絡先)。

//オブジェクトの作成。

Contacts.add(object1);

// ArrayListオブジェクトのContactsにDataオブジェクトを追加します。

関連する問題