这段代码意味着什么?

Raj*_*Raj 7 java

匿名类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();
                }
            });
        }
Run Code Online (Sandbox Code Playgroud)

编辑:是的,它是反编译的代码.

Jon*_*eet 14

它是一个实例初始化程序 - 作为构造函数的一部分调用.在匿名内部类中,您无法显式声明构造函数,因此有时会使用实例初始值设定项.在这种情况下,这是毫无意义的,因为该run方法可以直接使用runnable- 它仍然可以同时捕获.

(实际上,这个代码看起来并不完整或有效 - 假设实例初始化程序提到了runnable1其他地方没有出现的内容.我也不希望实例初始化程序包含一个super()调用.这可能是反编译的代码吗?)