我有来自第三方组件的类,我需要从 onTap
访问 poleMarker
但它为空,我无权访问它:
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;
}
}
最佳答案
您不能在以不同方法定义的内部类中引用非最终变量(这是编译器错误,我自己无法更好地解释它...)。您应该为此使用 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;
}
}
关于java - 从内联覆盖方法访问实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31183446/