import java.util.*;
import java.util.ArrayList;
class Employee{
int eid;
String eName;
String eAddr;
int eSalary;
public Employee(int eid,String eName,String eAddr,int eSalary){
this.eid = eid;
this.eName = eName;
this.eAddr = eAddr;
this.eSalary=eSalary;
}
}
class EmployeeDB{
ArrayList<Employee> al = new ArrayList<Employee>();
public boolean addEmployee(Employee e){
return al.add(e);
}
public Employee[] listAll() {
Employee[] array = new Employee[al.size()];
System.out.println("SIZE is : "+al.size());
return al.toArray(array);
}
}
public class Main
{
public static void main(String[] args) {
System.out.println(" ");
Employee e1 = new Employee(111,"Employee-1","loc-1",100);
EmployeeDB d1 = new EmployeeDB();
d1.addEmployee(e1);
Employee e2 = new Employee(222,"Employee-2","loc-2",200);
EmployeeDB d2 = new EmployeeDB();
d2.addEmployee(e2);
EmployeeDB x = new EmployeeDB();
Employee[] arr = x.listAll();
for(Employee e : arr){
System.out.println( e.eid );
System.out.println( e.eName );
System.out.println( e.eAddr );
System.out.println("**************");
}
}
}这里我将两个对象添加到数组列表中。最后,我尝试在main类函数中显示这两个元素。
但是没有添加元素。在添加两个对象之后,它告诉我数组列表的大小是0。并且不显示任何元素。
所以请告诉我怎样才能得到想要的结果。
发布于 2019-12-22 11:56:58
在列出EmployeeDB中的所有员工之前,您尚未向其中添加任何employee实例。相反,您需要将它们添加到不同的EmployeeDB实例中。尝试下面的代码片段。
public static void main(String[] args) {
System.out.println(" ");
Employee e1 = new Employee(111,"Employee-1","loc-1",100);
Employee e2 = new Employee(222,"Employee-2","loc-2",200);
EmployeeDB x = new EmployeeDB();
x.addEmployee(e1);
x.addEmployee(e2);
Employee[] arr = x.listAll();
for(Employee e : arr){
System.out.println( e.eid );
System.out.println( e.eName );
System.out.println( e.eAddr );
System.out.println("**************");
}
}发布于 2019-12-22 11:57:13
您每次都会向新的EmployeeDB对象添加Employee对象。而不是向现有EmployeeDB对象添加Employee对象。
必须使用EmployeeDB object x来添加employee对象以及检索添加的employee对象x.listAll()
public class Main
{
public static void main(String[] args) {
System.out.println(" ");
EmployeeDB x = new EmployeeDB();
Employee e1 = new Employee(111,"Employee-1","loc-1",100);
//EmployeeDB d1 = new EmployeeDB();
x.addEmployee(e1);
Employee e2 = new Employee(222,"Employee-2","loc-2",200);
// EmployeeDB d2 = new EmployeeDB();
x.addEmployee(e2);
// EmployeeDB x = new EmployeeDB();
Employee[] arr = x.listAll();
for(Employee e : arr){
System.out.println( e.eid );
System.out.println( e.eName );
System.out.println( e.eAddr );
System.out.println("**************");
}
}
}发布于 2019-12-22 11:58:15
看起来你使用的是公共对象而不是数组。只创建一个对象数组会简单得多。这样你就可以正确地检查属性和列表大小。您将不需要所有这些复杂、混乱的代码、指针和.thises。如果您需要方便地存储数据库,这也可以让您使用JSON。
https://stackoverflow.com/questions/59441483
复制相似问题