我想向ArrayList
添加一个对象,但每次我向ArrayList
添加一个新对象时,有3个属性: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<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);
}
}
答案 0 :(得分:33)
创建对象时需要使用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
答案 1 :(得分:1)
试试这个:
Data objt = new Data(name, address, contact);
Contacts.add(objt);
答案 2 :(得分:1)
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);
答案 3 :(得分:0)
您必须在此处使用new运算符进行实例化。例如:
Contacts.add(new Data(name, address, contact));
答案 4 :(得分:-1)
将日期更改为括号之间的对象