首页javalambdaJava Stream - 如何捕获有效的最终变量

Java Stream - 如何捕获有效的最终变量

我们想知道如何捕获有效的最终变量。
import javax.swing.JButton;

public class Main {

  public static void main(String[] args) throws Exception {

  }

  public void capturingVariable() {
    String name = getUserName();
    JButton button = new JButton();
    button.addActionListener(event -> System.out.println("hi " + name));
  }

  public void capturingVariableError() {
    // fails to compile
    String name = getUserName();
    name = "asdf";
    JButton button = new JButton();
    // button.addActionListener(event -> System.out.println("hi " + name));
  }

  private String getUserName() {
    return "Test";
  }

}