如何在Java中将对象添加到ArrayList
我想将一个对象添加到ArrayList
,但每次我将一个新对象添加到一个具有3个属性的ArrayList
: objt(name, address, contact)
,我收到一个错误。
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 Contacts = new ArrayList(); 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); } }
创建对象时需要使用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
。 否则它就成了你class上的一种方法。
public Data(String n, String a, String c) { // Constructor has the same name as the class and no return type as such
试试这个:
Data objt = new Data(name, address, contact); Contacts.add(objt);
Contacts.add(objt.Data(name, address, contact));
这不是调用构造函数的完美方式。 在创建对象时自动调用构造函数。 如果没有构造函数,java类会创建自己的构造函数。
正确的方法是:
// object creation. Data object1 = new Data(name, address, contact); // adding Data object to ArrayList object Contacts. Contacts.add(object1);
您必须在此处使用new运算符进行实例化。 例如:
Contacts.add(new Data(name, address, contact));
将日期更改为括号之间的对象