gpt4 book ai didi

java - 是否可以避免将对象声明为final?

转载 作者:行者123 更新时间:2023-12-02 03:29:52 24 4
gpt4 key购买 nike

我将 ChangeListener 添加到 JFrame 构造函数中的 JTabbedPane。在 stateChanged 方法中,我有一个带有在构造函数中接收的参数的方法,但它必须是 final。有可能避免这种情况吗?

 public PerfilPaciente(int operation, Patient patient) {
tabPane.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
switch (tabPane.getSelectedIndex()) {
case 1:
loadDates(patient); // here is the problem
break;
}
}
});

最佳答案

在匿名类中使用的 Java 7(含)变量必须显式为最终变量。对于您的情况:

public PerfilPaciente(int operation, final Patient patient) {

对于 Java 8,这不再是必需的,变量只需要有效地为最终变量(即永远不会在封闭方法中重新分配)。因此,使用 Java 8 您的代码可以编译。

关于java - 是否可以避免将对象声明为final?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22566488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com