草庐IT

if-cases

全部标签

java - 如何删除大的 if-else-if 链

这个问题在这里已经有了答案:关闭11年前.PossibleDuplicate:LonglistofifstatementsinJava我的任务是处理一些代码,并且有一个巨大的if-else-if链(100多个else-if)来检查字符串。有哪些好的技术可以更新此代码,以便将if-else-if链缩小到更易于管理的位置。链条看起来像这样:if(name.equals("abc")){dosomething}elseif(name.equals("xyz")){dosomethingdifferent}elseif(name.equals("mno")){dosomethingdiffer

java - if(x!=y) 与 if(x==y)

我已经运行了PMDplugin在Eclipse中针对我的代码,我收到类似于下图所示代码的高优先级警告:if(singleRequest!=null){//domywork}else{//domyotherwork}PMD说`Avoidif(x!=y).​​.;否则..;错误的描述如下:Inan"if"expressionwithan"else"clause,avoidnegationinthetest.Forexample,rephrase:if(x!=y)diff();elsesame();as:if(x==y)same();elsediff();Most"if(x!=y)"case

java - 在不使用 "if"的情况下执行此操作 | if(s == "value1"){...} 否则 if(s == "value2") { ...}

根据anti-ifcampaign最好不要在我们的代码中使用ifs。谁能告诉我是否可以摆脱这段代码中的if?(switch也不是一个选项,重点是去掉条件逻辑,而不是用类似的语言结构替换ifs)if(s=="foo"){Writeln("somelogichere");}elseif(s=="bar"){Writeln("somethingelsehere");}elseif(s=="raboof"){Writeln("ofcourseIneedmorethanjustWriteln");}(语言:Java或C#) 最佳答案 这是一种

java - 空的 if 语句

这个问题在这里已经有了答案:Semicolonatendof'if'statement(18个回答)关闭9年前。“空if语句”的意思是这样的(注意分号):if(condition);我无法考虑为此申请。使用while循环,您可以这样做:while(callUntilReturnsFalse());但没有这样的if语句应用。更重要的是,Java编译器在遇到这样的语句时不会发出错误或警告。这可能会导致大而无声的问题,尤其是对于冗长而复杂的语句:if((functionA()&&functionB(getFoo())||checkForComplexCondition(arg1,arg2,g

Java Optional if object is not null - 返回方法结果,如果为 null - 返回默认值

是否可以将此代码转换为Java8Optional单行表达式?longlastPollTime;if(object!=null){lastPollTime=object.getTime();}else{lastPollTime=0;}即如果某个对象不为空,我需要调用一个对象方法并返回其结果,否则返回0。Optional.ofNullable().orElse()不适合,因为它返回相同类型的对象,但我需要方法调用的结果或一些默认值。 最佳答案 几种形式:longlastPollTime=Optional.ofNullable(objec

java - 为什么我收到 Maven 错误 : "Unable to determine if resource X exists in http://maven.glassfish.org/content/groups/glassfish"?

每当我们在Maven中执行我们的site目标时,我们都会在控制台日志中得到一长串与依赖关系相关的错误。这些错误似乎是在构建的依赖关系报告创建部分生成的。当根据http://maven.glassfish.org/content/groups/glassfish存储库检查资源时,似乎会生成所有错误。(其中还有一个奇怪的JavaFX错误,但我们暂时不用担心)构建成功完成。10:21:52[INFO]Generating"Dependencies"report---maven-project-info-reports-plugin:2.7:dependencies10:22:07[ERROR

java - A Switch Java 问题 : case expressions must be constant expressions

我的switch/case语句有问题。错误说:“案例表达式必须是常量表达式”。我理解错误,我可以使用If解决它,但有人可以告诉我为什么case表达式必须在switch/case中保持不变。我的错误代码示例:publicbooleanonOptionsItemSelected(MenuItemitem){intidDirectory=((MenuItem)findViewById(R.id.createDirectory)).getItemId();intidSuppression=((MenuItem)findViewById(R.id.recycleTrash)).getItemId

Java:if-return-if-return vs if-return-elseif-return

询问unrelatedquestion我有这样的代码:publicbooleanequals(Objectobj){if(this==obj)returntrue;if(obj==null)returnfalse;if(getClass()!=obj.getClass())returnfalse;//Checkpropertyvalues}我收到一条评论,声称这不是最优的,而是(如果我理解正确的话)应该这样做:publicbooleanequals(Objectobj){if(this==obj)returntrue;elseif(obj==null)returnfalse;elsei

java - 如何使用许多 if 语句提高方法的可读性和长度?

我有一个包含195个if的方法。这是一个较短的版本:privateBigDecimalcalculateTax(Stringcountry,BigDecimalamount)throwsException{if(country.equals("POLAND")){returnnewBigDecimal(0.23).multiply(amount);}elseif(country.equals("AUSTRIA")){returnnewBigDecimal(0.20).multiply(amount);}elseif(country.equals("CYPRUS")){returnnew

java - 使用 Java lambda 而不是 'if else'

使用Java8,我有以下代码:if(element.exist()){//Dosomething}我想转换成lambda样式,element.ifExist(el->{//Dosomething});使用这样的ifExist方法:publicvoidifExist(Consumerconsumer){if(exist()){consumer.accept(this);}}但现在我还有其他情况要调用:element.ifExist(el->{//Dosomething}).ifNotExist(el->{//Dosomething});我可以写一个类似的ifNotExist,并且我希望它