2016-11-10 62 views
-1

我已经创建了一个将字符串值转换为新的Double的方法。我想创建一个if语句,用于测试所述方法是否返回它应该执行的null。这是到目前为止的代码:如何正确调用转换为Double方法的字符串?

内容类

public class Content 
{ 
     Double x; 

String string = "b"; 

     public void testParsing() 
     { 
     if (//call xMethod == null) { 
      System.out.println("Ovalid operator Success");} 
      else { 
        System.out.println("Invalid operator Fail"); 
        } 
     } 

     /* 
     * Chops up input on ' ' then decides whether to add or multiply. 
     * If the string does not contain a valid format returns null. 
     */ 
     public Double x(String x) 
     { 

    String[] parsed; 
    if (x.contains("*")) 
    { 
     // * Is a special character in regex 
     parsed = x.split("\\*"); 

     return Double.parseDouble(parsed[0]) * Double.parseDouble(parsed[1]); 
    } 
    else if (x.contains("+")) 
    { 
     // + is again a special character in regex 
     parsed = x.split("\\+"); 

     return Double.parseDouble(parsed[0]) + Double.parseDouble(parsed[1]); 
    } 

    return null; 
} 
} 

Main类

public class MainClass { 

public static void main(String[] args) { 

Content call = new Content(); 

call.testParsing(); 

} 
} 

我知道以下行编译和输出作为一个成功:(第9行)

if (x("") == null) { 

但我不认为这是在做我要求它做的事情,我要求它检查x所指向的方法的结果是否返回null。任何澄清如何正确调用这种方法来检查这种情况将非常感谢,谢谢。

+0

@ cricket_007:是什么让你认为?你认为哪个JLS规则被侵犯? –

+0

@JonSkeet该领域将如何区别于该方法? –

+0

Bah,[found this](http://stackoverflow.com/questions/9960560/java-instance-variable-and-method-having-same-name#9960571)。这是愚蠢的... –

回答

0

但我不认为这是做什么的,我要求它做

要检查,如果结果为空。你的逻辑是正确的。

您可能要储存的结果,如果你打算以后使用它,但。

Double val = x(""); 
if (val == null) { 
    // Invalid 
} else { 
    System.out.println("Valid! Result: " + val); 
} 
+0

啊好吧谢谢,抱歉打扰。 – John123

相关问题