有什么别的简洁的办法实现下面的效果吗?

wow334 2019-12-19 07:19:07
isOK为一个boolean值,希望每执行一行代码都检查一下isOK的值,当isOK为fause时跳出方法。 每一行的代码都是不同的。 有没有什么简单的写法,都像下面这样一行一行手动包裹要执行的代码实在是太麻烦了。

public void mEthod1() {

if (isOK) {
System.out.println("第1行");
} else {
return;
}

if (isOK) {
System.out.println("第2行");
} else {
return;
}

if (isOK) {
System.out.println("第3行");
} else {
return;
}

if (isOK) {
System.out.println("第4行");
} else {
return;
}
}
...全文
82 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
m-oj 2019-12-20
  • 打赏
  • 举报
回复
你可以用队列的形式,要执行的方法封装成Runnable,使用handler发送一个空消息,收到消息就从队列里取Runnable执行,使用你的isOk判断是否要执行,否就清空队列即可
只为搞笑 2019-12-20
  • 打赏
  • 举报
回复
假定你的每一步都会返回一个 true或者false表示是否执行成功,你把每一步封装成一个方法,返回值为boolean,然后

isOK = func1() && func2() && func3()
用 && 运算符,当执行到某一步为false时就会立即返回结果,不会继续执行,最后可以用 isOK 来确定是不是所有都执行成功了
王能 2019-12-20
  • 打赏
  • 举报
回复
正常的操作都是等某个功能做完才会去停止,所以判断可以不需要怎么频繁,将每个功能归在一起写成方法,如3楼的那样判断即可。
如下例子:

Thread t2 = new Thread("t2") {
@Override
public void run() {
super.run();
boolean b = readFile() && waitUser();
if (!b) {
return;
}
for (int i = 0; i < 1000; i++) {
if (!readBook(i)) {
return;
}
}
}

/**
* 读书
* @param page 第几章,每读一章判断一次
*/
private boolean readBook(int page) {
//...
return isOk;
}

/**
* 读文件
*/
private boolean readFile() {
//...
return isOk;
}

/**
* 等待用户操作
*/
private boolean waitUser() {
//...
return isOk;
}
};
wow334 2019-12-19
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
一个if就行了啊,把要干的事情都放到里面就行了,不用分开
不是的,我是希望在做一个事情的中途,isOK的值变化时,可以停止正在做的事情。
bdmh 2019-12-19
  • 打赏
  • 举报
回复
一个if就行了啊,把要干的事情都放到里面就行了,不用分开

80,492

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧