Java错误:<;标识符>;应为内部受保护接口

Java错误:<;标识符>;应为内部受保护接口,java,Java,我面临以下问题。当我遇到一个问题时,我正试图编写一个关于Java策略的简单教程。 编译器在voiddo(inti)上给我一个“预期”错误在界面中: 下面是完整的课程: import java.util.*; public class Data { private List<Integer> ints; public Data( int[] a ) { ints = new LinkedList<>(); for( int i : a ) ints.

我面临以下问题。当我遇到一个问题时,我正试图编写一个关于Java策略的简单教程。 编译器在
voiddo(inti)上给我一个“预期”错误在界面中:
下面是完整的课程:

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 );
        }
    }
 }
import java.util.*;
公共类数据{
私人名单;
公共数据(int[]a){
ints=newlinkedlist();
对于(整数i:a)整数,添加(i);
}
保护静态接口策略{
无效do(int i);
}
受保护的无效循环(策略s){
for(整数i:整数){
s、 do(i);
}
}
}

为什么我会犯这个错误?事先非常感谢

方法名
do
是方法名,不能是方法名。将方法名称更改为非关键字的名称

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

方法名
do
是方法名,不能是方法名。将方法名称更改为非关键字的名称

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

在数据类外部定义策略接口在数据类外部定义策略接口