gpt4 book ai didi

java - 如何初始化匿名类的对象?

转载 作者:行者123 更新时间:2023-12-02 09:47:30 26 4
gpt4 key购买 nike

我们不能在匿名类中声明构造函数。但是,如果我需要使用局部变量的值来初始化匿名类的对象的状态,我该怎么做?

最佳答案

您可以执行以下操作:

final int localVar = 5;

new Runnable() {
int innerVar = localVar; // <--- initialized here

public void run() {
System.out.println(innerVar);
}
}.run();

如果 localVar 发生了变化(不是最终的),您可以使用以下方法解决它

...
final int tmp = localVar;
new Runnable() {
int innerVar = tmp;
...
...

另请注意,如果您需要调用方法或执行通常在构造函数中执行的其他初始化操作,则可以使用实例初始值设定项:

final int localVar = 5;

new Runnable() {
int innerVar;

// Initialization block executed upon construction of this class
{
System.out.println("Initializing an anonymous Runnable");
innerVar = localVar;
}

public void run() {
System.out.println(innerVar);
}
}.run();

例如:Why java Instance initializers?

关于java - 如何初始化匿名类的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27964357/

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