java - 内部类中 boolean 标志的最终数组而不是非最终变量的模式

标签 java design-patterns

当我需要在内部类中设置 boolean 标志时,我的 Java 代码中经常会出现这种情况。不可能为此使用原始 boolean 类型,因为内部类只能使用外部的最终变量,所以我使用这样的模式:

// class from gnu.trove is not of big importance, just to have an example
private final TIntIntHashMap team = new TIntIntHashMap();
// ....... code ............
final boolean[] flag = new boolean[]{false};
team.forEachValue(new TIntProcedure() {
    @Override
    public boolean execute(int score) {
        if(score >= VICTORY_SCORE) {
            flag[0] = true;
        } 
        return true; // to continue iteration over hash map values
    }
});
//  ....... code ..............

final 数组而不是非 final 变量的模式效果很好,但对我来说它看起来不够漂亮。有人知道更好的 Java 模式吗?

最佳答案

使用 AtomicBoolean .

这是一个关于此问题的流行 StackOverflow 问题:Why are only final variables accessible in anonymous class?

关于java - 内部类中 boolean 标志的最终数组而不是非最终变量的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11280902/

相关文章:

java - 如何将 Class<后代> 传递到 Hashmap 中?

将字符模式再现为数字模式

c# - 处理合并的业务和表示代码的最佳方式?

java - 当已经在 ejb 内部时打开新事务

java - 是否推荐使用aerospike对某些字段进行过滤

java - 缺少返回语句错误

java - 反转范围内的数字

c# - 状态设计模式的功能等价物

c++ - OOP:如何在父类(super class)中动态扩展函数

html - 是否有工具可以将任何网站转换成其框架正在使用的模板?