使用参数构造函数实现的 Java 内部类直接?

标签 java

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

Runnable updateRunnable = new Runnable() {

    public void run() { 
    }
}

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

Runnable updateRunnable = new Runnable(locale) {

    Locale locale = null;

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

    public void run() { 
    }
};

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

最好的解决方案是什么(上面的例子似乎不起作用????)是使用 getter setter 或将类实现为“普通”内部类(这不是直接的)的唯一可能性实现)。

非常感谢! 简

最佳答案

你可以做类似的事情:

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

需要注意的重要一点是,您传入的 Locale 必须是 final 才能执行此操作。

你必须以某种方式初始化 locale 才能编译。

关于使用参数构造函数实现的 Java 内部类直接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1641915/

相关文章:

java - JVM 在 Lucene DataInput.readVInt 上崩溃

java - 为什么文件 ("c:"的 isDirectory 为 true )?

java - Eclipse 告诉我 Long 不可比较

java - 背景与我其他 JLabels 的视野重叠

java - Jersey:将数据保存在内存中

java - 比较器、集合和 HashMap

java - 不幸的是应用程序已在 Eclipse 中停止

java - Maven javadoc 插件 - 包不存在

java - 赋值语句不起作用

java.lang.IllegalArgumentException : input == null