我必须用数百行以下代码来实现某些业务规则ifthisthenthiselseifthenthis..//hundredsoflinesofruleselsethat我们是否有任何设计模式可以有效地实现这一点或重用代码,以便将其应用于所有不同的规则。我听说过规范模式,它会创建如下所示的内容publicinterfaceSpecification{booleanisSatisfiedBy(Objecto);Specificationand(Specificationspecification);Specificationor(Specificationspecification);Spec
这个问题在这里已经有了答案:Shouldafunctionhaveonlyonereturnstatement?(50个回答)关闭4年前。如您所知,在Eclipse中,您可以打开“Unnecessary'else'statement”检查,该检查将在if-then-else上触发并提前返回。而且,根据我的经验,使用这样的语句有两种最可能的情况:1)预检:if(!validate(arg1)){returnfalse;}doLotOfStuff();2)后期检查:doLotOfStuff();if(condition){returnfoo;}else{returnbar;}在第二种情况下
这个问题在这里已经有了答案:关闭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
使用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,并且我希望它
代码如下:publicResponsegetABC(Requestrequest)throwsException{Responseres=newResponse();try{if(request.someProperty==1){//businesslogic}else{thrownewException("xxxx");}}catch(Exceptione){res.setMessage(e.getMessage);//Ithinkthisisweird}returnres;}这个程序运行良好。我认为它应该重新设计,但如何? 最佳答案
我有一个检查空值的方法。有没有办法减少方法中的行数?目前,代码看起来很“脏”:privateintsimilarityCount(Stringone,Stringtwo){if(one==null&&two==null){return1;}elseif(one==null&&two!=null){return2;}elseif(one!=null&&two==null){return3;}else{if(isMatch(one,two))return4;return5;}} 最佳答案 privateintsimilarityCoun
哪个更快:这个try{n.foo();}catch(NullPointerExceptionex){}或if(n!=null)n.foo(); 最佳答案 这不是哪个更快的问题,而是正确性的问题。异常(exception)的情况异常(exception)。如果n可能是null作为正常业务逻辑的一部分,则使用if..else,否则抛出异常。 关于java-哪个更快,在java中尝试catch或if-else(WRT性能),我们在StackOverflow上找到一个类似的问题:
我有一个ifelse语句,它可能会在不久的将来增长。publicvoiddecide(StringsomeCondition){if(someCondition.equals("conditionOne")){//someMethod("someParameter");}elseif(someCondition.equals("conditionTwo")){//someMethod("anotherParameter");}..else{someMethod("elseParameter");}}既然这看起来已经很乱了,我认为如果我可以在这里应用任何设计模式会更好。我研究了策略模式,
到目前为止,我一直在网上搜索,该语句始终具有if和else条件,例如a?b:c。我想知道if三元语句是否可以在没有else的情况下使用。假设我有以下代码,如果它不为空,我希望关闭PreparedStatement(我正在使用Java编程语言。)PreparedStatementpstmt;//....(pstmt!=null)?pstmt.close:; 最佳答案 No,youcannotdothat.试试这个:if(bool1&&bool2)voidFunc1(); 关于java-如果
这个方法:booleancontainsSmiley(Strings){if(s==null){returnfalse;}else{returns.contains(":)");}}可以等价写成:booleancontainsSmiley(Strings){if(s==null){returnfalse;}returns.contains(":)");}根据我的经验,第二种形式更常见,尤其是在更复杂的方法中(可能有多个这样的退出点),“抛出”和“返回”也是如此。然而,第一种形式可以说使代码的条件结构更加明确。有什么理由比另一个更喜欢一个吗?(相关:Shouldafunctionhave