В сервлете, который используется для добавления новой записи в таблицу базы данных, мне нужно передать значение Date в конструктор, однако, если я анализирую аргумент конструктора, я получаю следующую ошибку
"необработанное исключение: java.text.ParseException"
Когда я пытаюсь выполнить синтаксический анализ с помощью try catch, прежде чем поместить значение в конструктор, это значение считается не инициализированным.
Это класс сущности
@Entity
@Table(name = "doctors")
@Data
public class Doctors implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "Id")
private Integer id;
@Column(name = "Name")
private String name;
@Column(name = "Surname")
private String surname;
@Column(name = "Title")
private String title;
@Column(name = "LicenseNumber")
private String licenseNumber;
@Column(name = "Phone")
private String phone;
@Column(name = "Email")
private String email;
@Column(name = "Nationality")
private String nationality;
@Column(name = "Speciality")
private String speciality;
@Column(name = "DateofBirth")
private LocalDate dateOfBirth;
@Column(name = "IsaTeacher")
private Boolean isATeacher;
public Doctors() {
}
public Doctors(Integer id, String name, String surname, String title, String licenseNumber, String phone, String email, String nationality, String speciality, LocalDate dateOfBirth, Boolean isATeacher) {
this.id = id;
this.name = name;
this.surname = surname;
this.title = title;
this.licenseNumber = licenseNumber;
this.phone = phone;
this.email = email;
this.nationality = nationality;
this.speciality = speciality;
this.dateOfBirth = dateOfBirth;
this.isATeacher = isATeacher;
}
}
Это значение, которое я получаю из http запроса
String dateOfBirth = req.getParameter("dateOfBirth");
Это мои попытки заставить его работать. Это дает «необработанное исключение: java.text.ParseException»
Doctors doctor = new Doctors(name, surname, title, licenseNumber, phone, email, nationality, speciality, new SimpleDateFormat("yyyy-MM-dd").parse(dateOfBirth), Boolean.valueOf(isATeacher));
и эта "переменная не инициализирована"
DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date1;
try {
date1 = simpleDateFormat.parse(dateOfBirth);
} catch (ParseException e) {
e.printStackTrace();
}
Doctors doctor = new Doctors(name, surname, title, licenseNumber, phone, email, nationality, speciality, date1, Boolean.valueOf(isATeacher));
Я действительно не знаю, что делать. Я должен обработать исключение, чтобы проанализировать String на сегодняшний день, но тогда переменная не видна за пределами блока try.