内部类问题
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()真假 {} 都会执行