final

Why are only final variables accessible in anonymous class?

 

java thread accessing outer object before it's created

 

 

    public class A {
        private final int a;
        
        public A() {
            Thread t = new Thread(new Runnable() {
                
                @Override
                public void run() {
                    System.out.println("----");
                    System.out.println(a);
                }
            });
            t.start();
            try {
                TimeUnit.SECONDS.sleep(5);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            a = 9;
            System.out.println("====");
            System.out.println(a);
        }

输出:

----
0
====
9

 

posted @ 2017-09-03 15:42  raindream  阅读(141)  评论(0)    收藏  举报