首先在AtomicBoolean中获取更新后的值



getAndSet返回"上一个"值,然后设置更新的值,我希望"反向"行为返回更新的值并在AtomicBoolean对象中设置它。就像你做一样

if(bolVal = otherBolVal)

这里的作业先于评估。它可以单独用AtomicBoolean完成吗?还是我需要一个对我不好的自定义类。

我有这个

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

这是在一行中完成的,现在我被迫将布尔值作为可变对象传递,所以我不想创建自定义类,而是选择AtomicBoolean。现在,我正在寻找一种方法,在不创建新类或额外的行表达式的情况下,用最少的精力完成同样的单行作业。

类似的东西?

private final AtomicBoolean atomicBoolean = new AtomicBoolean();
public boolean setAndGet(boolean bool) {
    atomicBoolean.getAndSet(bool);
    return bool;
}

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

我把它看作是一个我正在寻找的一行解决方案,但我不知道我是否走对了路。

在我需要分配和返回true的情况下,我使用:

sharedPref.edit().putBoolean("tag", at.getAndSet(true) || true).apply();

在我需要分配和返回false的情况下,我使用

sharedPref.edit().putBoolean("tag", at.getAndSet(false) && false).apply();

我没有不知道新值或更新值的情况,但在这种情况下:

sharedPref.edit().putBoolean("tag", newVal ? (at.getAndSet(newVal) || newVal) : (at.getAndSet(newVal) && newVal)).apply();

我知道这是一场灾难,特别是最后一场,但这是我能想到的最好的事情。

相关内容

  • 没有找到相关文章