首页 > 解决方案 > 首先在 AtomicBoolean 中获取更新后的值

问题描述

getAndSet返回“上一个”值然后设置更新值,我想要“反向”行为,返回更新值然后在AtomicBoolean对象中设置它。就像你做的那样

if(bolVal = otherBolVal)

这里的分配先于评估。它可以AtomicBoolean单独完成还是我需要一个对我不利的自定义类。

我有这个

sharedPref.edit().putBoolean("tag", isOvertime = false).apply();

这是在一行中完成的,现在我被迫将布尔值作为可变对象传递,所以我不想创建自定义类并选择 AtomicBoolean。现在我正在寻找一种方法来以最少的努力完成相同的单行分配,而无需创建新类或额外的行表达式。

标签: javabooleanatomicboolean

解决方案


像这样的东西?

private final AtomicBoolean atomicBoolean = new AtomicBoolean();

public boolean setAndGet(boolean bool) {
    atomicBoolean.getAndSet(bool);
    return bool;
}

不,您将需要一个扩展 AtomicBoolean 或 Utils 类的自定义类。在 AtomicBoolean 中没有理由为此提供方法。即使在您的情况下,它也只是多行代码...


推荐阅读