【问题标题】:.add() method in List is not applicable for argumentList 中的 .add() 方法不适用于参数
【发布时间】:2013-03-27 10:14:32
【问题描述】:

我正在尝试使用 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...
}

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

【问题讨论】:

  • 我将类型转换为 Overlay 对象,但效果不佳。无论如何,我不应该对它进行类型转换,否则我会从子类中丢失某些东西

标签: java android map itemizedoverlay


【解决方案1】:

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

public List<Overlay> getOverlays()

返回一个列表

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

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

public abstract class Overlay extends Thread {

类路径中有旧版本吗?您可能需要清理旧的 JAR/API 并确保它引用了正确的覆盖类。

【讨论】:

  • 抱歉,我可能没有那么清楚。 Overlay、ItemizedOverlay、ArrayItemizedOverlay 和 OverlayItem 类来自之前的 0.3.0 版本。这些可以在这里找到:code.google.com/p/mapsforge/source/browse/mapsforge-map/src/…
  • 我想就是这样。 Overlays 不一样。
  • 我自己有另一个 Overlay 类,org.mapsforge.android.maps.old.overlay.Overlay。那我该如何改变呢?在 getOverlays() 所在的 MapView 类中,我已经导入了 org.mapsforge.android.maps.old.overlay.Overlay (这是我正在使用的)
  • 如果你的 Overlay 类满足 MapView 中的所有依赖,你可以在 MapView 中导入抽象的 Overlay 类。这意味着您正在修改源代码,并且在升级过程中会遇到问题。切换到旧版本的 MapView 或更好的选择是不使用旧版本,升级到最新版本并修改您的代码使用以使用最新的 API。
  • 我很想使用最新版本。问题是,他们的最新版本根本不支持使用 Overlays 添加引脚,这就是为什么我的项目库混合了新旧类。无论如何,感谢您的提醒,我会详细研究我可能再次错过的内容
【解决方案2】:

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

【讨论】:

  • ?????????我正在添加一个对象,而不是一组对象。但没关系,我做了 addAll() ,但我仍然遇到同样的问题
猜你喜欢
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
  • 2013-12-19
  • 2015-06-04
相关资源
最近更新 更多