Java 列表中的.add()方法不适用于参数

Java 列表中的.add()方法不适用于参数,java,android,map,itemizedoverlay,Java,Android,Map,Itemizedoverlay,我正在尝试使用mapsforge在手机上显示地图 目前,我在为显示管脚添加覆盖层方面遇到了一些小问题。这是给出错误的代码: ArrayItemizedOverlay itemizedOverlay = new ArrayItemizedOverlay(defaultMarker, true); myOpenMapView.getOverlays().add(itemizedOverlay); getOverlays()将返回列表,如前所述 这一行给出了以下错误: "The method ad

我正在尝试使用mapsforge在手机上显示地图

目前,我在为显示管脚添加覆盖层方面遇到了一些小问题。这是给出错误的代码:

ArrayItemizedOverlay itemizedOverlay = new ArrayItemizedOverlay(defaultMarker, true);
myOpenMapView.getOverlays().add(itemizedOverlay);
getOverlays()将返回列表,如前所述

这一行给出了以下错误:

 "The method add(Overlay) in the type List<Overlay> is not applicable for the arguments (ArrayItemizedOverlay)"
“类型列表中的方法add(Overlay)不适用于参数(ArrayItemizeOverlay)”
这就是为什么在这种情况下.add()方法无效的原因,因为ArrayItemizeOverlay类是Overlay类的子类

这些是类定义,我希望有人能告诉我可以做些什么,以便.add()方法接受该对象

公共类ArrayItemizedOverlay扩展了ItemizedOverlay{
//代码。。。。
}

public抽象类ItemizedOverlay扩展覆盖{
//代码。。。
}

请随时指出您可能需要的任何缺失信息,谢谢

使用列表方法添加对象集合。

您是否能够找到所用计算器和接口的完整路径

public List<Overlay> getOverlays()
但是代码库有一个不同的覆盖类

public abstract class Overlay extends Thread {

类路径中是否有旧版本?您可能需要清理旧的jar/api,并确保它引用了正确的覆盖类。

I输入cast到覆盖对象,它就不能正常工作了。不管怎样,我不应该打字,否则我会从子类中丢失某些东西?????????我正在添加一个对象,而不是对象的集合。但没关系,我做了addAll(),但我仍然遇到同样的问题抱歉,也许我没有那么清楚。Overlay、ItemizeOverlay、ArrayItemizeOverlay和OverlayItem类来自早期版本0.3.0。这些可以在这里找到:我想就是它了。
Overlay
s不一样。我自己有另一个Overlay类,org.mapsforge.android.maps.old.Overlay.Overlay。那我怎么改变呢?在getOverlays()所在的MapView类中,我已经导入了org.mapsforge.android.maps.old.overlay.overlay(我正在使用的),如果覆盖类满足MapView中的所有依赖项,则可以在MapView中导入抽象覆盖类。这意味着您正在修改源代码,并且在升级期间将面临问题。切换到MapView的旧版本,或者更好的选择是不使用旧版本,升级到最新版本,并修改代码使用情况以使用最新的API。我希望使用最新版本。问题是,它们的最新版本根本不支持使用覆盖层来添加管脚,这就是为什么我的项目库混合了新旧类。不管怎样,谢谢你的提醒,我会再仔细看看我可能错过了什么
public List<Overlay> getOverlays()
public interface org.mapsforge.android.maps.overlay.Overlay
public abstract class Overlay extends Thread {