gpt4 book ai didi

Java,你怎么称呼这个?以及为什么)};

转载 作者:行者123 更新时间:2023-12-01 17:28:00 26 4
gpt4 key购买 nike

我正在阅读 Hello Android(Android PDF/教程),并且已经多次看到此语法。有人可以向我解释一下定义 run Runnable 时使用的 Java 语法吗?

private class AndroidBridge {

public void callAndroid(final String arg) { // must be final
handler.post(new Runnable() {
public void run() {
Log.d(TAG, "callAndroid(" + arg + ")" );
textView.setText(arg);
}
...

代码是否定义了 Runnable 对象并重写了它的 run 方法?

最佳答案

正如 Dave Newton 所指出的,这是一个实现 Runnable 接口(interface)的匿名内部类。

至于为什么要使用它,它可以被认为是某种语法糖。您会注意到,在您的示例中,run() 中的代码可以访问与定义匿名内部类本身相同的范围。

这简化了对这些成员的访问,就像您在外部定义该类一样,您必须传入对您想要调用/使用其成员的任何对象的引用。

其实IIRC,这其实就是Java编译匿名内部类时发生的情况;如果存在对外部包含类的引用,编译器将创建一个构造函数,该构造函数传入对外部包含类的引用。

关于Java,你怎么称呼这个?以及为什么)};,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13522104/

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