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 - Executor.execute() 肯定挂起

javascript - 在构造函数中使用 plainToClass

protected 成员的 C++ 运行时错误

c++ - 在覆盖新运算符时传递更多参数(C++)

java - 为什么我在 dato2 中看到 "null"返回我的第二个 Activity ?

java - 如何从 Heroku Java Web 应用程序对 Heroku DB 执行 CRUD 操作

java - 为 JUnit 创建自己的 @Test 注释

c++ - 数据成员的编译时重新安排?

c++ - 通过 Derived::f2() 调用 f1() 时调用了谁的函数?

c# - 如何为所有 IEnumerable<Int32> 覆盖 ToString() 方法?