gpt4 book ai didi

java - 匿名类对象: which variables do they see?

转载 作者:太空宇宙 更新时间:2023-11-04 13:23:08 24 4
gpt4 key购买 nike

编写 Android 应用程序时的常见情况:调度 RunnableView 上进行一些绘图工作:

class MyView extends View {
...
private void start() {

final ScheduledExecutorService executor = Executors
.newScheduledThreadPool(1);

mMoverFuture = executor.scheduleWithFixedDelay(new Runnable() {
@Override
public void run() {

if (isOutOfView()) {
mMoverFuture.cancel(false);
}

postInvalidate(); // Can I do this?
}
}, 0, REFRESH_RATE, TimeUnit.MILLISECONDS);
}
...
}

特别是,我不确定是否可以从线程的 run() 调用 MyView 的方法 postInvalidate()。判断匿名类对象可以使用哪些变量和方法时应该遵循哪些规则?

最佳答案

根据 Java 规则,InnerClass 的实例可以直接访问其封闭实例的方法和字段。有疑问可以查看in Oracle documentation

方法 postInvalidate 专门设计用于在 UI 线程之外调用,因此它也不会违反 Android View 的限制。

关于java - 匿名类对象: which variables do they see?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32883573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com