较新的Java版本在这个问题上更容忍:它们只要求它们应该"有效地最终".
最后,差异并不大 - 你只能使用你可以标记的变量final; 你可能不会修改它们.
final
如果你在那个地方,你也可以"真正"使它们final成为现实.
顺便说一下,在1.8的新lambda语法中你可以写得更优雅
button.addActionListener((ActionEvent arg0) -> jLabel.setText("xyz"));