gpt4 book ai didi

Java - 从内部类内部访问变量

转载 作者:行者123 更新时间:2023-12-02 00:04:37 26 4
gpt4 key购买 nike

IntelliJ 希望我将变量设为最终变量,但我需要更改它们(我将在方法中修改它们)。我该如何解决这个问题?

这是我的代码,我以前从未遇到过这个问题:

public void openDoor(int id, int x, int y, int face, int type) {
Server.getTaskScheduler().schedule(new Task(0, true) {
@Override
protected void execute() {
ObjectManager.deleteObject(c, x, y); //Error is here
}
});
}

最佳答案

您必须找到一种巧妙的方法来解决它,因为这是 Java 中的要求。您不能在匿名内部类内部修改在其外部声明的局部变量或方法参数。一种可能的解决方案是创建一个“holder”类,例如:

class Holder {
Object c;
int x;
int y;
}

然后让你的方法接受一个最终的Holder,并且匿名类可以修改Holder的内容。另一个(丑陋的)选择是使每个受影响的参数成为一个数组。然后数组就可以是最终的,但是,您可以随意修改内容。

最好的选择可能是停下来问问自己为什么需要首先修改这些变量。也许,您的任务执行应该返回一些值。

关于Java - 从内部类内部访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14107111/

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