- Java code
public class ThreadPre { public static void main(String[] args) throws IOException { ServerSocket socket = new ServerSocket(80); while(true){ final Socket connection = socket.accept(); Runnable task = new Runnable() { @Override public void run() { handle(connection); } }; new Thread(task).start(); } }}
请问上面的代码socket为什么要用final声明?这是我在《Java并发编程实践》看到的例子,请解释下
------解决方案--------------------------------------------------------
不声明final的话,匿名类的函数没法直接引用该局部变量。