List中的.add()方法不适用于参数

时间:2013-03-27 10:14:32

标签: java android map itemizedoverlay

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

目前我在向显示引脚添加叠加方面遇到了一些问题。这是给出错误的代码:

ArrayItemizedOverlay itemizedOverlay = new ArrayItemizedOverlay(defaultMarker, true);
myOpenMapView.getOverlays().add(itemizedOverlay);

getOverlays()将返回List,如所述here

此行显示以下错误:

 "The method add(Overlay) in the type List<Overlay> is not applicable for the arguments (ArrayItemizedOverlay)"

这是我真正不理解的是.add()方法在这种情况下无效的原因,因为ArrayItemizedOverlay类是Overlay类的子类。

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

ArrayItemizedOverlay

public class ArrayItemizedOverlay extends ItemizedOverlay<OverlayItem> {
    //codes....
}

ItemizedOverlay

public abstract class ItemizedOverlay<Item extends OverlayItem> extends Overlay {
    //codes...
}

随时指出您可能需要的任何遗漏信息,谢谢!

2 个答案:

答案 0 :(得分:2)

您是否能够找到所使用的calsses和接口的完整路径?

public List<Overlay> getOverlays()

返回

列表
public interface org.mapsforge.android.maps.overlay.Overlay

但代码库有不同的覆盖类

public abstract class Overlay extends Thread {

类路径中是否有旧版本?您可能必须清理旧的JAR / API并确保它引用正确的覆盖类。

答案 1 :(得分:0)

使用List的方法addAll()添加对象集合。