//要小心无意间产生的遮蔽导致的错误 class Pet{ public void sleep() { System.out.println("Zzzzzzz..."); } public void live() { new Thread() { @Override public void run() { //这里的sleep()被继承自Thread的sleep(long)遮蔽,导致编译错误。 //如果Pet也有sleep(long)方法,则这里将会导致无法察觉的逻辑错误。 //sleep(); //办法一:sleep()方法改名 //办法二: Pet.this.sleep(); } }.start(); } //更好的解决办法:实现Runnable public void live1() { new Thread(new Runnable() { @Override public void run() { sleep(); } }).start(); } }
小心无意识的遮蔽
猜你喜欢
转载自jaesonchen.iteye.com/blog/2288309
今日推荐
周排行