Tag: if statement

使用’if’语句检查后出现空指针exception

我收到一个非常烦人的错误,说我得到一个空指针exception但是有一个if语句在继续之前检查文本是否为null: public String[] getFileData() throws IOException { String file_name = “C:/Users/Liloka/Source/textfiles/Lines.txt”; try { ReadFile file = new ReadFile(file_name); aryLines = file.OpenFile(); for(int i =0; i<aryLines.length; i++) { System.out.println(aryLines[i]); } } catch(IOException e) { System.out.println(e.getMessage()); } return aryLines; } public void actionPerformed(ActionEvent evt) { if(evt.getSource() == enterBtn) { String Text = textToAdd.getText(); if(!(Text.equals(null))) { RF.addNewElement(Text); System.out.println(Text); […]

在if语句中使用按位和内部

在C中,我可以写一个if语句 if (firstInt & 1) 但是当我尝试在Java中做同样的事情时,编译器告诉我“不兼容的类型”并说我需要一个boolean而不是一个int 。 有没有办法在Java中编写C代码?

if的更短解决方案,否则if,否则if

我正在寻找一种缩短代码的方法,避免重复代码和if语句。 我正在做的是创建一个计算器,在字符串中搜索运算符“* / + – ”并相应地执行它们。 有任何想法吗? if(exp.charAt(i)==’*’) { newResult=Integer.parseInt(exp.substring(0, i)) * Integer.parseInt(exp.substring(i+1, exp.length())); primeResult = newResult; System.out.println(primeResult); } else if(exp.charAt(i)==’/’) { newResult=Integer.parseInt(exp.substring(0, i)) / Integer.parseInt(exp.substring(i+1, exp.length())); primeResult = newResult; System.out.println(primeResult); } else if(exp.charAt(i)==’+’) { newResult=Integer.parseInt(exp.substring(0, i)) + Integer.parseInt(exp.substring(i+1, exp.length())); primeResult = newResult; System.out.println(primeResult); } else if(exp.charAt(i)==’-‘) { newResult=Integer.parseInt(exp.substring(0, i)) – Integer.parseInt(exp.substring(i+1, exp.length())); primeResult = […]

Java 6中复合if /或与try / catch的成本

如果声明,我们目前有以下化合物…… if ((billingRemoteService == null) || billingRemoteService.getServiceHeader() == null || !”00″.equals(billingRemoteService.getServiceHeader().getStatusCode()) || (billingRemoteService.getServiceBody() == null) || (billingRemoteService.getServiceBody().getServiceResponse() == null) || (billingRemoteService.getServiceBody().getServiceResponse().getCustomersList() == null) || (billingRemoteService.getServiceBody().getServiceResponse().getCustomersList().getCustomersList() == null) || (billingRemoteService.getServiceBody().getServiceResponse().getCustomersList().getCustomersList().get(0) == null) || (billingRemoteService.getServiceBody().getServiceResponse().getCustomersList().getCustomersList().get(0).getBillAccountInfo() == null) || (billingRemoteService.getServiceBody().getServiceResponse().getCustomersList().getCustomersList().get(0).getBillAccountInfo().getEcpdId() == null)) { throw new WebservicesException(“Failed to get information for Account Number ” + accountNo); } return billingRemoteService.getServiceBody().getServiceResponse().getCustomersList().getCustomersList().get(0); […]

使用Java lambda而不是’if else’

使用Java 8,我有这样的代码: if(element.exist()){ // Do something } 我想转换为lambda风格, element.ifExist(el -> { // Do something }); 使用ifExist方法,如下所示: public void ifExist(Consumer consumer) { if (exist()) { consumer.accept(this); } } 但现在我还有其他情况要打电话: element.ifExist(el -> { // Do something }).ifNotExist(el -> { // Do something }); 我可以写一个类似的ifNotExist ,我希望它们是互斥的(如果exist条件为真,则不需要检查ifNotExist ,因为有时, ifNotExist ()方法需要花费很多工作量来检查),但我总是有检查两次。 我怎么能避免这种情况? 也许“存在”这个词会让别人误解我的想法。 你可以想象我还需要一些方法: ifVisible() ifEmpty() ifHasAttribute() 很多人说这是个坏主意,但是: 在Java 8中,我们可以使用lambda […]

Java:使用多态来避免if语句?

我正在尝试编写一个java程序,根据用户选择的内容初始化某些布局。 我想要做的是尽量避免编写一堆if语句,这样如果需要添加更多布局,代码可以扩展以备将来使用。 我听说实现这个的最好方法是使用多态,但我对多态的理解仍然有点模糊。 说我想实现这个案例: if (user choose layoutA) { initialize layoutA } if (user choose layoutB) { initialize layoutB } if (user choose layoutC) {initialize layoutC } 我正在考虑为要实现的类创建一个接口。 令我困惑的是它在main()中是如何工作的,我是否还需要条件if或switch语句来确定要实例化哪个类? interface LayoutHandler { public void initializeLayout(); } class layoutA implements LayoutHandler { public void initialize Layout {initialize layout A} } class layoutB implements LayoutHandler { public […]

在没有If-Statements的情况下在Java中将Boolean转换为Integer

我想知道是否有一种方法可以在不使用if语句的情况下将布尔值转换为int(以免破坏管道)。 例如,我可以写 int boolToInt( boolean b ){ if ( b ) return 1 return 0 但是我想知道是否有办法在没有if语句的情况下执行它,比如Python bool = True num = 1 * ( bool ) 我也认为你可以做到 boolean bool = True; int myint = Boolean.valueOf( bool ).compareTo( false ); 但是这会创建一个额外的对象,所以它真的很浪费,我发现它甚至比if语句方式更慢(这不一定是低效的,只有一个弱点)。

if else vs java中的switch性能

我想知道使用if语句或switch之间是否存在任何效率差异。 例如: if(){ //code } else if(){ //code } else{ //code } 我相信程序需要去检查所有if语句,即使第一个if语句是真的。 switch(i){ case 1: //code break; case 2: //code break; 但是在交换机中,有一个break命令。 我接近了吗? 如果没有,你能解释一下它们之间的效率差异吗?

混淆If Statement?

我总是使用If语句(在C#中)作为(1. Alternative); if (IsSuccessed == true) { // } 我知道没有必要写“== true”作为(2. Alternative)); if (IsSuccessed) { // } 但是,我使用它是因为它更具可读性并且不会导致性能问题。 当然,这是我的选择,我知道许多软件开发人员更喜欢第一种选择。 什么是最佳用法,为什么?

为什么switch语句比Java 7中的String更快?

在Java 7中 , string对象可以在switch语句的表达式中。 有人可以从官方文档中解释以下声明吗? Java编译器通常使用String对象生成比使用链式if-then-else语句更高效的字节码。