我正在使用Repast Symphony实现多代理模拟。我收到以下错误,我认为这与Repast平台无关。所以在这里:
我有一个界面:
public interface Located {
public int getX();
public int getY();
}
我还有另外两个实现它的类:
public class Carrier implements Located{
public int getX(){..}
public int getY(){..} }
public class Gold implements Located{
public int getX(){..}
public int getY(){..} }
我还有一个LocateAdder类,它实现了另一个内置接口:
public class LocateAdder<Located> implements GridAdder<Located> {
@Override
public void add(Grid<Located> destination, Located object)
{
// TODO Auto-generated method stub
destination.moveTo(object, object.getX(), object.getY());
}
}
我甚至无法编译代码。我在getX和getY下得到红线,表示&#34;方法getX()未定义类型为Location&#34;。我不确定为什么会发生这种情况,因为界面显然具有两种方法的签名。任何人都可以发现发生了什么事?感谢您的帮助:)
答案 0 :(得分:5)
更改
public class LocateAdder<Located> implements GridAdder<Located> {
到
public class LocateAdder implements GridAdder<Located> {
在第一个示例中,您声明了一个名为Located
的新类型变量,该变量隐藏了名为Located
的类型。