java - 从内联覆盖方法访问实例

标签 java class overriding instance

我有来自第三方组件的类,我需要从 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/

相关文章:

java - 创建继承对象的数组

c# - 是否可以在继承类中覆盖抽象父类的嵌套类定义?

php - WooCommerce 智能优惠券覆盖 "available coupons"位置

Delphi子类化可视化组件并使用它

java - 有没有办法将表行保存到 Firebase 中?实时还是 Firestore?

java - 如何从按钮重新启动 java/Android 中的线程?

java - 为什么我的 DAO 读取 .txt 文件而不存储所有数据行?

java - 关于来自另一个类的私有(private)访问的错误需要反馈

c++ - 在循环中为 C++ 创建对象

Python 中的 Pythonic 用法或下划线(私有(private))名称