【问题标题】:How do I change the variable value in the inner class [closed]如何更改内部类中的变量值[关闭]
【发布时间】:2020-04-26 10:56:14
【问题描述】:

我正在制作一个扫雷游戏。我想减少内部类中的标志数量,但出现此错误。“从内部类引用的局部变量必须是最终的或有效的最终 java”。我该如何解决这个问题?

【问题讨论】:

    标签: java oop inner-classes local-variables minesweeper


    【解决方案1】:

    如果外部类的变量至少不是最终的,则不能在内部类中引用该变量。一个有效的最终变量是一个保证永远不会改变的变量。

    但是,您可以包装您的变量。任何种类或包装都很好。 您可以将“标志”(或任何您称为变量的变量)转换为一个元素数组并使用它来代替:

    final int[] flags = {0};
    

    现在您可以从内部类更新您的变量:

    flags[0]++;
    

    您也可以使用AtomicInteger 或任何其他类型的包装器。

    【讨论】:

    • 这是一个非常糟糕的建议,一旦内部类中的代码执行之后包含方法已经完成(想想回调等),就会失败。
    • 不,我是说“标志”应该是他的类变量。它不应该在包含方法中声明。
    • 他们为什么要关闭我的问题?我问了一个可以理解的问题
    • 其实我也不知道……
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多