使用Parameter Constructor实现Java Inner-Class direclty?

jan*_*jan 2 java

通常我按如下方式实现我的Runnables(直接实现内部类):

Runnable updateRunnable = new Runnable() {

    public void run() { 
    }
}
Run Code Online (Sandbox Code Playgroud)

Java中是否有任何工作方式通过在构造函数中传递任何参数来实现Class,如下所示?

Runnable updateRunnable = new Runnable(locale) {

    Locale locale = null;

    public Runnable(Locale locale){
        this.locale = locale
    }

    public void run() { 
    }
};
Run Code Online (Sandbox Code Playgroud)

==>我的目标是直接实现内部类,但我想传入一个参数.

什么是做到这一点的最佳解决方案(上面的示例似乎不起作用????)是唯一可能使用getter setter或者将类实现为"普通"内部类(不是直接实现的).

非常感谢你!一月

jjn*_*guy 5

你可以做类似的事情:

final Locale locale;
Runnable r = new Runnable() {
    public void run() {
        // have direct access to variable 'locale'
    }
};
Run Code Online (Sandbox Code Playgroud)

需要注意的重要一点是,Locale你传入的必须是final为了能够做到这一点.

你必须以locale某种方式初始化以便编译.