2016-04-21 4 views
-2

В примере программы на https://gist.github.com/bernii/5697073Что вызывает метод внутри анонимного внутреннего класса?

В коде

this.wait.until(new ExpectedCondition<Boolean>() { 
      public Boolean apply(WebDriver webDriver) { 
       System.out.println("Searching ..."); 
       return webDriver.findElement(By.id("resultStats")) != null; 
      } 
}); 

, что называет применить метод() в анонимном внутреннем классе?

+0

Это всегда только я, но очень важно комментировать @Override при использовании методов переопределения. Хотя вы и я знаем, что вы переопределяете метод «apply (WebDriver webDriver)», отмечая аннотацию, важно показать, что вы знаете, что вы переопределяете метод и знаете, что это метод, который будет вызываться. –

ответ

0

Возможно, метод until, который принимает экземпляр ExpectedCondition<Boolean>. Это единственный метод, который может вызывать его (если только метод until не сохраняет ссылку на этот экземпляр в некоторой переменной экземпляра (или статической переменной), а другой метод использует эту ссылку для вызова метода apply в другое время).

0

Анонимный внутренний класс похож на локальные классы, за исключением того, что у них нет имени. Подкласс ExpectedCondition будет создан в фоновом режиме, который вызовет метод внутри него.