日期:2014-05-20  浏览次数:20761 次

内部类问题
public   final   class   Test
{
        class   Inner   {
                void   test()   {
                        if   (Test.this.flag);   {sample();}
                }  
        }
        private   boolean   flag   =   false;
        public   void   sample()   {System.out.println( "Sample ");}
        public   Test()   {(new   Inner()).test();}
        public   static   void   main(String   args   [])   {
                new   Test();
        }  
}

The   result   is   "Sample ",Why?????

------解决方案--------------------
if (Test.this.flag); {sample();}
改为:
if (Test.this.flag) {sample();}
中间的分号去掉。
------解决方案--------------------
问题就在那个“;” 上面 ,不过不是去掉 lz问的是为什么?

The result is "Sample ",Why?????

答案就在那个 “;”

首先执行 if();
在执行 { sample(); } //这是一个代码块 根if()没有任何的逻辑关系
// 不管 if()真假 {} 都会执行