首页 > 解决方案 > 如何在方法调用之间交替?

问题描述

我想调用两种方法,但我想一次只调用其中一种。

下次我想打电话给以前没有打电话的人时,一种循环技术

例子:

void mainMethod() {
    Obj val;

    if (somthing)
        val = implMethod1();
    else {
        val = implMethod2();
    }
}

使用 if 语句是可以做到的。但是有什么开箱即用的东西可以用来实现同样的效果吗?

标签: javaif-statementround-robin

解决方案


您可以将AtomicBoolean用于线程安全Round Robin

AtomicBoolean roundRobin = new AtomicBoolean(false);

void mainMethod() {
    Object val;
    if (roundRobin.compareAndSet(false, true)) {
        val = implMethod1();
    } else {
        val = implMethod2();
        roundRobin.set(false);
    }
}

可以自动更新的布尔值。


推荐阅读