2 liangzi321321 liangzi321321 于 2016.09.18 15:11 提问

怎么变换方法中变量的值

图片说明
如图,我想每次执行这个方法的时候要count的值都不和上次执行的重复,求指教

2个回答

w172087242
w172087242   Ds   Rxr 2016.09.18 15:23
已采纳

把count设置为全局变量,或者全局静态变量,并且要注意其线程安全性;
比如:
private final static AtomicInteger cnt = new AtomicInteger(0);

public void test(){
//这里就能保证你的每次调用都是在0和1之前变换。并且线程安全
int count = cnt.getAndAdd() % 2;
//你的逻辑
}

希望能帮到你....

liangzi321321
liangzi321321 是getAndAdd()方法还是getAndIncrement()方法呢?getAndAdd参数的话是什么如果是getAndIncrement的话每次执行cnt都是0,执行完不还是一样的么?
大约一年之前 回复
w172087242
w172087242 上面的 cnt.getAndAdd() % 2改成cnt.getAndAdd(1) % 2,这样最后还能统计出所有的调用次数
大约一年之前 回复
qq_29594393
qq_29594393   Ds   Rxr 2016.09.18 15:26

设置count为全局变量,既然要count在0和1切换的话,建议用boolean型
执行test 函数 中加入count=count?false:true;就可以了

liangzi321321
liangzi321321 不行,我要做数组里面的地址用,不能用boolean型的
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!