草庐IT

java - 减少 Java 中的 if-else 语句

我有以下代码:voidf(Stringt){if(t.equals("a")){someObject.setType(ObjectType.TYPE_A);}elseif(t.equals("b")){someObject.setType(ObjectType.TYPE_B);}//50moresimilarcode}有没有什么简单的方法可以重写if-else条件,以免有那么多代码? 最佳答案 你应该使用一些东西来消除someObject.setType(ObjectType....))如果ObjectType是一个enum的重复,

java - If和Else If之间的区别?

我想知道为什么你会使用一个elseif语句,而不是多个if语句?例如,这样做有什么区别:if(i==0)...elseif(i==1)...elseif(i==2)...还有这个:if(i==0)...if(i==1)...if(i==2)...他们似乎做同样的事情。 最佳答案 if(i==0)...//ifi=0thiswillworkandskipthefollowingelse-ifstatementselseif(i==1)...//ifinotequalto0andifi=1thiswillworkandskipthefo

java - If和Else If之间的区别?

我想知道为什么你会使用一个elseif语句,而不是多个if语句?例如,这样做有什么区别:if(i==0)...elseif(i==1)...elseif(i==2)...还有这个:if(i==0)...if(i==1)...if(i==2)...他们似乎做同样的事情。 最佳答案 if(i==0)...//ifi=0thiswillworkandskipthefollowingelse-ifstatementselseif(i==1)...//ifinotequalto0andifi=1thiswillworkandskipthefo

java - Java 8 中 "If/Throw, Else/Return"逻辑的简写?

在Java8中是否有更短的if/throwelse/return语法?java.util.Optional提供了一种在一个语句中完成此操作的方法,但它需要为每个具有非空引用的调用创建一个Optional实例。这可以在一个语句中完成吗?publicstaticMyEnumfromString(Stringvalue){MyEnumresult=enumMap.get(value);if(result==null)thrownewIllegalArgumentException("Unsupportedvalue:"+value);returnresult;}可选示例(不好,每次都需要可选

java - Java 8 中 "If/Throw, Else/Return"逻辑的简写?

在Java8中是否有更短的if/throwelse/return语法?java.util.Optional提供了一种在一个语句中完成此操作的方法,但它需要为每个具有非空引用的调用创建一个Optional实例。这可以在一个语句中完成吗?publicstaticMyEnumfromString(Stringvalue){MyEnumresult=enumMap.get(value);if(result==null)thrownewIllegalArgumentException("Unsupportedvalue:"+value);returnresult;}可选示例(不好,每次都需要可选

java - : "Python For Else Loop" in Java 的高效实现

在Python中有一个高效的for..else循环实现描述here示例代码:forxinrange(2,n):ifn%x==0:printn,'equals',x,'*',n/xbreakelse:#loopfellthroughwithoutfindingafactorprintn,'isaprimenumber'在Java中,我需要编写更多代码来实现相同的行为:finishedForLoop=true;for(intx:rangeListOfIntegers){if(n%x==0){//syso:SomeprintingherefinishedForLoop=falsebreak;

java - : "Python For Else Loop" in Java 的高效实现

在Python中有一个高效的for..else循环实现描述here示例代码:forxinrange(2,n):ifn%x==0:printn,'equals',x,'*',n/xbreakelse:#loopfellthroughwithoutfindingafactorprintn,'isaprimenumber'在Java中,我需要编写更多代码来实现相同的行为:finishedForLoop=true;for(intx:rangeListOfIntegers){if(n%x==0){//syso:SomeprintingherefinishedForLoop=falsebreak;

java - 重构 if/else 逻辑

我有一个带有千行if/else逻辑方法的java类,如下所示:if(userType=="admin"){if(age>12){if(location=="USA"){//dostuff}elseif(location=="Mexico"){//dosomethingslightlydifferentthantheUScase}}elseif(age4){if(location=="USA"){//dosomethingslightlydifferentthantheage>12UScase}elseif(location=="Mexico"){//dosomethingslightl

java - 重构 if/else 逻辑

我有一个带有千行if/else逻辑方法的java类,如下所示:if(userType=="admin"){if(age>12){if(location=="USA"){//dostuff}elseif(location=="Mexico"){//dosomethingslightlydifferentthantheUScase}}elseif(age4){if(location=="USA"){//dosomethingslightlydifferentthantheage>12UScase}elseif(location=="Mexico"){//dosomethingslightl

java - 如何自动将 if-else if 语句转换为 switch

在IntelliJ中是否有一个热键或简单的方法可以用switch替换if-elseif语句?我不希望手动将if-elseif语句转换为switch。我希望能够突出显示if-elseif语句并按下组合键或使用菜单按钮。 最佳答案 更新:正如@christopheml在对另一个答案的评论中指出的那样,“用Switch替换If”似乎在IntelliJ2018.1中消失了。已提交错误here.有名为“用Switch替换If”和“用If替换Switch”的IntelliJIntent。检查您的首选项以查看是否启用了这些选项。如果是这样,我希望