【发布时间】:2020-04-26 10:56:14
【问题描述】:
我正在制作一个扫雷游戏。我想减少内部类中的标志数量,但出现此错误。“从内部类引用的局部变量必须是最终的或有效的最终 java”。我该如何解决这个问题?
【问题讨论】:
标签: java oop inner-classes local-variables minesweeper
我正在制作一个扫雷游戏。我想减少内部类中的标志数量,但出现此错误。“从内部类引用的局部变量必须是最终的或有效的最终 java”。我该如何解决这个问题?
【问题讨论】:
标签: java oop inner-classes local-variables minesweeper
如果外部类的变量至少不是最终的,则不能在内部类中引用该变量。一个有效的最终变量是一个保证永远不会改变的变量。
但是,您可以包装您的变量。任何种类或包装都很好。 您可以将“标志”(或任何您称为变量的变量)转换为一个元素数组并使用它来代替:
final int[] flags = {0};
现在您可以从内部类更新您的变量:
flags[0]++;
您也可以使用AtomicInteger 或任何其他类型的包装器。
【讨论】: