我对 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
.