0

我正在尝试使用 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() 方法在这种情况下无效,因为 ArrayItemizedOverlay 类是 Overlay 类的子类。

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

ArrayItemizedOverlay

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

逐项叠加

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

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

4

2 回答 2

2

你能找到使用的类和接口的完整路径吗?

public List<Overlay> getOverlays()

返回一个列表

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

但是代码库有一个不同的覆盖类

public abstract class Overlay extends Thread {

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

于 2013-03-27T10:33:57.117 回答
0

使用 List 的addAll()方法添加 Object 的 Collection。

于 2013-03-27T10:21:52.183 回答