我正在尝试使用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()方法接受该对象。
public class ArrayItemizedOverlay extends ItemizedOverlay<OverlayItem> {
//codes....
}
public abstract class ItemizedOverlay<Item extends OverlayItem> extends Overlay {
//codes...
}
随时指出您可能需要的任何遗漏信息,谢谢!
答案 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()添加对象集合。