web-dev-qa-db-fra.com

Comment ajouter un objet à une ArrayList en Java

Je souhaite ajouter un objet à une ArrayList, mais chaque fois que j'ajoute un nouvel objet à une ArrayList avec 3 attributs: objt(name, address, contact), un message d'erreur s'affiche.

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

Ici, Data est la classe pour laquelle j'essaie de créer un objet et de le transmettre à un 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);
        }
}
13
Johnfranklien

Vous devez utiliser l'opérateur new lors de la création de l'objet.

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

ou sinon

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

et votre constructeur ne devrait pas contenir void. Sinon, cela devient une méthode dans votre classe.

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

Essaye celui-là:

Data objt = new Data(name, address, contact);
Contacts.add(objt);
1
Umar Asghar
Contacts.add(objt.Data(name, address, contact));

Ce n'est pas un moyen idéal d'appeler un constructeur. Le constructeur est appelé automatiquement au moment de la création de l'objet. S'il n'y a pas de constructeur, la classe Java crée son propre constructeur.

La manière correcte est:

// object creation. 
Data object1 = new Data(name, address, contact);      

// adding Data object to ArrayList object Contacts.
Contacts.add(object1);                              
1
saibaba vali

Vous devez utiliser un nouvel opérateur ici pour instancier. Par exemple:

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