【发布时间】:2019-09-30 09:22:52
【问题描述】:
我正在尝试从员工列表中打印员工的“姓名”。下面是我的 pojo 课。
import java.time.LocalDate;
public class Employee {
private String name;
private String empID;
private Designation designation;
private LocalDate dateOfJoining;
private int monthlySalary;
public Employee(String name, String empID, Designation designation, LocalDate dateOfJoining, int monthlySalary) {
super();
this.name = name;
this.empID = empID;
this.designation = designation;
this.dateOfJoining = dateOfJoining;
this.monthlySalary = monthlySalary;
}
public Employee() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmpID() {
return empID;
}
public void setEmpID(String empID) {
this.empID = empID;
}
public Designation getDesignation() {
return designation;
}
public void setDesignation(Designation designation) {
this.designation = designation;
}
public LocalDate getDOJ() {
return dateOfJoining;
}
public void setDOJ(LocalDate dOJ) {
dateOfJoining = dOJ;
}
public int getMonthlySalary() {
return monthlySalary;
}
public void setMonthlySalary(int monthlySalary) {
this.monthlySalary = monthlySalary;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((dateOfJoining == null) ? 0 : dateOfJoining.hashCode());
result = prime * result + ((designation == null) ? 0 : designation.hashCode());
result = prime * result + ((empID == null) ? 0 : empID.hashCode());
result = prime * result + monthlySalary;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Employee other = (Employee) obj;
if (dateOfJoining == null) {
if (other.dateOfJoining != null)
return false;
} else if (!dateOfJoining.equals(other.dateOfJoining))
return false;
if (designation == null) {
if (other.designation != null)
return false;
} else if (!designation.equals(other.designation))
return false;
if (empID == null) {
if (other.empID != null)
return false;
} else if (!empID.equals(other.empID))
return false;
if (monthlySalary != other.monthlySalary)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
@Override
public String toString() {
return "Employee [name=" + name + ", empID=" + empID + ", designation=" + designation + ", DOJ=" + dateOfJoining
+ ", monthlySalary=" + monthlySalary + "]";
}
}
现在,当我尝试打印“名称”时,我得到了空值。 请看下图,
import java.time.LocalDate;
import java.time.Period;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Employecomparable {
public static void main(String[] args) {
JoiningDate jd = new JoiningDate();
Employee emp = new Employee();
List<Employee> listofemployee = new ArrayList<>();
listofemployee.add(new Employee("abc", "12345", Designation.ASE,jd.date1 , 20000));
listofemployee.add(new Employee("abcd", "24680", Designation.SE, jd.date2, 30000));
listofemployee.add(new Employee("abcde", "13570", Designation.SSE,jd.date3, 40000));
listofemployee.add(new Employee("abcdef", "13690", Designation.TL, jd.date4, 60000));
listofemployee.add(new Employee("xyz", "10909", Designation.AM, jd.date5, 800000));
listofemployee.add(new Employee("koool", "89076", Designation.M, jd.date6, 2000));
System.out.println("The name of employee is "+emp.getName());
我得到的输出是“null”。 在我得到的控制台中,员工的姓名为空。 我如何打印名称? 请帮忙!
【问题讨论】:
-
您正在将 六 名员工添加到列表中。你想打印谁的名字?
-
假设我想打印第一个员工的姓名?我该怎么做?
-
您没有在您创建的 emp 对象中设置任何属性