我对 Java 中的内部方法没有什么问题。排队:
dReservation[i].dispose();
我有一个错误:
不能在不同方法中定义的内部类中引用非最终变量 dReservation
我在论坛中阅读了许多主题,但是该问题有两种无效的解决方案:
为什么非最终“局部”变量不能在内部类中使用,而封闭类的非最终字段可以?
我试图为我的班级设置JDialog[] dReservation字段global(GUIShowReservations)。然后我的错误消失了,但在内部方法 ( actionPerformed) 而不是dReservation[i]is null。
当我设置JDialog[] dReservation为final字段时,历史相同。它是null。
bShowReservations = new JButton("Show Reservations");
bShowReservations.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
JDialog[] dReservation = new JDialog[10000];
for(Object o: reservations)
{
rez = (Reservations)o;
reservation.append(rez.getGroup());
dReservation[i] = new JDialog();
dReservation[i].setSize(400, 300);
dReservation[i].setLocationRelativeTo(null);
dReservation[i].setVisible(false);
dReservation[i].setLayout( null );
dReservation[i].setTitle("Edition");
bEditAccept = new JButton("Edit");
bEditAccept.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
rez.setTeacher(cEditTeacher.getSelectedItem().toString());
dao.update(rez);
dReservation[i].dispose();
}
});
bEditAccept.setSize(160, 24);
bEditAccept.setLocation(10, 200);
dReservation[i].add(bEditAccept);
}
}
});
你可以帮帮我吗?我想JDialog在我的内部方法中看到适当的而不是null.