2016-11-10 14 views
-1

文字列の値を新しいDoubleに変換するメソッドを作成しました。私は、上記のメソッドがnullを返すかどうかをテストするif文を作成したいと考えています。これは、これまでのコードです:Doubleメソッドに変換されたStringを正しく呼び出す方法は?

コンテンツクラス

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; 
} 
} 

メインクラス

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

バー、[これが見つかりました](http://stackoverflow.com/questions/9960560/java-instance-variable-and-method-having-same-name#9960571)。 Thats dumb ... –

答えて

0

しかし、私はこれは私が結果がnullの場合は、チェックしている

を行うには、それを求めています何やっているとは思いません。あなたのロジックは正しいです。

結果を保存する場合は、後で使用することをお勧めします。

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

ああ大丈夫、迷惑を掛けて申し訳ありません。 – John123

関連する問題