Java Gridworld Как я могу назвать помеченный класс? (интерфейс маркера)

Как я могу назвать помеченный класс? Мне нужно реализовать класс Spider, чтобы, если он найдет Babybug и его съели.

// помеченный интерфейс

public interface Eatable {

}   

// Класс BabyBug

public class BabyBug extends Bug implements Eatable{

public Babybug(){
    this.setColor(Color.ORANGE);
    Age=0;
}
@Override   
public void act()
    {
        super.act();

        Location Loc =getLocation();
        Grid<Actor> grid =getGrid();
        if (this.getAge()>=4){
            removeSelfFromGrid();       
            AdultBug Adult = new AdultBug();
            Adult.putSelfInGrid(grid, Loc);
            }
            return;
        }

    }

}

// Class Spider является подклассом Insect, а Insect является подклассом Critter

public class Spider extends Insect 
    public void act(){
       super.act();
    }

    public void processActors(ArrayList<Actor> actors)
    {

        for (Actor a : actors)
        {
            if (a instanceof Eatable)
            a.removeSelfFromGrid();

        }
    }

}

Но проблема в том, что паук не съел клопов и если я положил:

Babybug a =new Babybug();
// instead
for (Actor a : actors)

Я получаю некоторые ошибки, такие как: Этот актер не содержится в сетке. Как я мог это исправить? Спасибо!

0 ответов

Другие вопросы по тегам