Tôi nhận được một java.lang.NoSuchFieldException
khi cố gắng chạy các phương pháp sau đây:NoSuchFieldException khi lĩnh vực tồn tại
public void getTimes(String specialty, String day) {
ArrayList<Tutor> withSpec = new ArrayList<Tutor>();
for (Tutor t : tutorList){
try {
Time startTime = (Time)t.getClass().getField(day + "Start").get(t);
} catch (NoSuchFieldException | SecurityException | IllegalAccessException ex) Logger.getLogger(DBHandler.class.getName()).log(Level.SEVERE, null, ex); }
Lỗi này là trên dòng Time startTime = (Time)t.getClass().getField(day + "Start").get(t);
Tôi không hiểu lỗi này, vì monStart là một lĩnh vực của Tutor
lớp học:
Public class Tutor implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Column(name = "tutorID")
private Integer tutorID;
....
@Column(name = "monStart")
@Temporal(TemporalType.TIME)
Date monStart;
Tôi chỉ học cách sử dụng sự phản chiếu, vì vậy tôi chắc chắn đây là một số loại lỗi cú pháp ...
ngay cả sau khi sử dụng getDeclaredField qua getField iam nhận được lỗi này: - không thể truy cập vào một thành viên của lớp học với từ bổ nghĩa "private" – Subodh
ohh được nó. tôi cần phải sử dụng setAccessible (true) – Subodh