При вводе идентификатора персонала я хочу получить имя медсестры, в классе персонала могут быть указаны врачи или медсестры. Например, если идентификатор штата равен 1, это будет врач, а не медсестра, но когда я это сделаю то же самое для идентификатора медсестры возвращает ошибку нулевого указателя.
staff.getNurse().getLastName();
возвращает ошибку нулевого указателя
The get nurse command in the staff class
public Nurse getNurse() {
return nurse;
}
Создание посоха
public Staff(Doctor doctor, Nurse nurse){
this.doctor = doctor;
this.nurse = nurse;
}
Медсестра - это просто класс с базовыми полями, такими как имя и фамилия, в виде строк
Я хочу проверить, где находится медсестра или врач, и, если это так, получить свое имя и установить для него значение nurseDocName, а для названия своей работы - заголовок строки
Staff staff = new Staff();
//staffID is set via an input from a JTextarea
staff = sM.getStaff(staffID);
String nurseDocName = "";
String title = "Nurse ";
if(staff.getDoctor().equals(null)) nurseDocName = staff.getNurse().getLastName();
else
{
nurseDocName = staff.getDoctor().getLastName();
title = "Doctor ";
}
получить метод персонала в моем классе диспетчера сеансов
public Staff getStaff(Integer staffID){
Session session = factory.openSession();
Transaction tx = null;
Staff staff = new Staff();
try {
tx = session.beginTransaction();
staff = session.get(Staff.class, staffID);
}catch (HibernateException e){
if(tx != null) tx.rollback();
}
session.close();
return staff;
}
Решение изменено .equals на ==
if(staff.getDoctor() == null) nurseDocName = staff.getNurse().getLastName();