匿名类new Runnable(){之前没有标识符或声明的第二个块下面的run()是什么意思:
public BackgroundThread(final Runnable runnable)
{
super(new Runnable() {
final Runnable val$runnable;
public void run()
{
Process.setThreadPriority(10);
runnable.run();
}
{
runnable = runnable1;
super();
}
});
}
编辑:是的,它是反编译的代码。
答案 0 :(得分:14)
这是instance initializer - 被称为构造函数的一部分。在匿名内部类中,您无法显式声明构造函数,因此有时会使用实例初始值设定项。在这种情况下,它是毫无意义的,因为run
方法可以直接使用runnable
- 它仍然可以同时捕获。
(这段代码看起来并不完整或有效,实际上 - 假设实例初始化程序提到runnable1
并没有出现在其他地方。我也不希望实例初始化程序包含{ {1}}调用。这可能是反编译的代码吗?)
答案 1 :(得分:2)
这是一个初始化块。它被编译到每个构造函数中。
请参阅tutorial中的“初始化实例成员”。