我有来自第三方组件的课程,我需要从poleMarker
访问onTap
,但它是空的,我无法访问它:
Marker poleMarker = new Marker(markerPoint,myBitmap),0,0) {
@Override
public boolean onTap(org.mapsforge.core.model.LatLong tapLatLong, Point layerXY, Point tapXY)
{
// poleMarker is null here and I need it :)
lastTappedMarker = poleMarker;
}
}
答案 0 :(得分:2)
你不能在不同方法中定义的内部类中引用非final变量(这是编译器错误,我自己也无法解释它......)。您应该使用this
。
Marker poleMarker = new Marker(markerPoint,myBitmap),0,0) {
@Override
public boolean onTap(org.mapsforge.core.model.LatLong tapLatLong, Point layerXY, Point tapXY)
{
lastTappedMarker = this;
}
}
答案 1 :(得分:1)
由于您在嵌套类中,因此您只需使用关键字“this”即可。 它应该对应于同一个实例。
lastTappedMarker = this;