阻止和取消阻止Java方法
我有以下资料:阻止和取消阻止Java方法,java,Java,我有以下资料: public static void menu () throws java.io.IOException{ int option; do{ out.println("1. Sing"); out.println("2. Eat"); out.println("3. Sleep"); out.println("4. Wake up");
public static void menu () throws java.io.IOException{
int option;
do{
out.println("1. Sing");
out.println("2. Eat");
out.println("3. Sleep");
out.println("4. Wake up");
out.println("6. Out");
option=Integer.parseInt(in.readLine());
selOption(option);
} while (opcion != 6);
}
public static void selOption (int option) throws java.io.IOException {
switch (option){
case 1:
objectVariable.sing();
break;
case 2:
eat();
break;
case 3:
sleep();
break;
case 4:
wakeUp();
break;
default:
break;
}
}
我正在寻找的是一个方法,如果我选择sleep(),它将禁用开关的前两个选项(sing()和eat()),但如果我选择wakeUp(),它将再次启用这两个选项
我知道倒计时锁可能会工作,但我不知道如何正确使用它
有关倒计时闩锁的参考:
谢谢。只要记住布尔变量中的当前状态(休眠、唤醒)
public static void menu() {
int option;
boolean sleeping = false;
do{
out.println("1. Sing");
out.println("2. Eat");
out.println("3. Sleep");
out.println("4. Wake up");
out.println("6. Out");
option=Integer.parseInt(in.readLine());
sleeping = selOption(option, sleeping);
} while (option != 6);
}
public static boolean selOption (int option, boolean sleeping) {
switch (option){
case 1:
if(!sleeping) objectVariable.sing();
return sleeping;
case 2:
if(!sleeping) eat();
return sleeping;
case 3:
sleep();
return true;
case 4:
wakeUp();
return false;
default:
return sleeping;
}
}
这超出了我的理解,你为什么要研究CountDownLatch的原因。@peter.petrov我很确定OP不知道“阻塞”这个词的意思。@chrylis我想我应该使用启用和禁用,而不是阻塞或取消阻塞