说如果我有下面的代码,它基本上是确定某个条件是否匹配,然后分配 boolean 值,然后运行一些代码。如果booleanValue为false,则引发异常。如果我想让它在booleanValue为false而不运行其余代码的情况下立即引发异常该怎么办?如果我仅将第二个条件语句放入第一个条件语句中,则会有重复的代码。请向我展示一种执行此操作的聪明方法(我已经修改了代码,使其看起来像我的实际代码)。

boolean booleanValue = false;
Permission value;

if (someCondition) {
   value = getPermission_1();
   booleanValue = someMethod(value);
   useValue_1(value);
}
else {
   value = getPermission_2();
   booleanValue = anotherMethod(value);

   useValue_2(value);
}

if (!booleanValue) {
   throw Exception();
}

最佳答案

如何消除 boolean 变量?您可以这样重写代码:

if (someCondition) {
   if (!someMethod()) {
     throw new Exception();
   }
   some codes...
}
else {
   if (!anotherMethod()) {
     throw new Exception();
   }
   some codes...
}

在我看来,这看起来更容易,但是这些东西只是一个品味问题...

额外的优势:如果异常最终出现在堆栈跟踪中,则您知道情况是什么,因为您有两个不同的throw语句。这可能会加快调试速度。

关于java - 用Java重写条件语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3340202/

10-10 00:51