2012-11-15 1 views

답변

7

대개 내부 클래스에 속하는 경우를 제외하고는 동일합니다.

이 경우 두 번째 표기법을 사용하여 포함하는 활동의 메소드에 대한 호출을 모호하게합니다. 예를 들어

:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    finish(); // the activity's finish() 

    new Runnable() { 

     private void finish() { 
      ... 
     } 

     @Override 
     public void run() { 
      SampleActivity.this.finish(); // the activity's finish() 
      finish(); // the runnable's finish() 
     } 
    }; 

    new Runnable() { 

     @Override 
     public void run() { 
      SampleActivity.this.finish(); // the activity's finish() 
      finish(); // the activity's finish() (because the inner class doesn't hide it 
     } 
    }; 
} 
관련 문제