Ошибка Java: ожидаемый внутри защищенного интерфейса

Я столкнулся со следующей проблемой. Я пытался собрать простой учебник по стратегии на Java, когда у меня возникла проблема. Компилятор дает мне "<идентификатор> ожидаемой" ошибки в void do(int i); в интерфейсе: Вот полный класс:

import java.util.*;
public class Data {
private List<integer> ints;

 public Data( int[] a ) {
 ints = new LinkedList<>(); 
 for( int i : a ) ints.add( i );
 }

 protected static interface Strategy{
 void do(int i);
 }

 protected void loop( Strategy s ) {
 for( int i : ints ) {
 s.do( i );
 }
 }
 }
</integer>

Почему я получаю эту ошибку? Заранее большое спасибо.

1 ответ

Имя метода do это ключевое слово Java (раздел 3.9, JLS) и не может быть именем метода. Измените имя метода на не ключевое слово.

protected static interface Strategy{
 void doAction(int i);
}

licensed under cc by-sa 3.0 with attribution.