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并发编程实践》看到的例子,请解释下
ThreadPre.java:21 错误:从内部类中访问本地变量connection;需要被声明为最终类型
handle(connection);
^所以,楼上正解
public List<XXX> findDaysGroupBy(final Long userId) {
return (List<XXX>) super.getHibernateTemplate().executeFind(
new HibernateCallback() {
@SuppressWarnings("deprecation")
public Object doInHibernate(Session session){