2017-10-10 3 views
-2

私はJavaで初心者です。 1つのオブジェクトまたはnullを取得する関数を作成する方法は?メソッドは、オブジェクトオートを返す必要があるため、1つのオブジェクトまたはnullを取得する関数を作成する方法は?

public class AutoSearch { 
    public Auto oneAuto() 
    { 
     //operations 
     String text = getOperations(); 
     if (text) { 
      Auto auto = new Auto(text); 
      return auto; 
     } else { 
      return null; 
     } 
    } 
} 

しかし、これは動作しない:私は、メソッドonAutoがしたい

public class Auto { 
    Auto (String text) { 

    } 
} 

そして、他のクラス:

は、私は単純なクラスを持っています。

このメソッドでオブジェクトAutoを作成できない場合はどうなりますか?どうしたらいいですか?

+2

を返す場合、私はどのように '(文字列)は'実際 –

+2

を動作するようになっている場合は表示されません - あなたのreturn文は、罰金に見えますが、 'if'条件はそうではありません。それはあなたが "働いていない"ことが何を意味するのかを明確にするのに役立ちます。 –

答えて

1

Autoオブジェクトを作成するためにテキストが存在するかどうかを確認したいのですが、正しいですか?

あなたは三項演算子使用して、あまりにもよりコンパクトな方法でこれを行うことができます
public class AutoSearch { 

    public Auto oneAuto() { 

     String text = getOperations(); 

     if (text != null) { 
      return new Auto(text); 
     } else { 
      return null; 
     } 

    } 

} 

public class AutoSearch { 

    public Auto oneAuto() { 
     return text != null ? new Auto(text) : null; 
    } 

} 

をしかし、Javaでifのステートメント内の式はブール値(trueまたはfalse)に解決される必要があります。あなたはJavaがJavascriptのように動作すると思っているようですが、その事実は間違いありません。 JavaとJavascriptには共通の名前しかありません。

davidxxxによると、おそらくAutoコンストラクタをpublicとして定義する必要があります。

0

1)if (text)はブール式ではありません。 コンパイルできません。しかし、することができます。

2)Autoコンストラクタは、パッケージのプライベートアクセス修飾子を使用して宣言しました。
このコンストラクタを呼び出せるようにするためには、AutoSearchAutoと同じパッケージになければなりません。
さもpublicAutoコンストラクタを変更します。

public Auto (String text) { 
    .... 
} 
0

あなたはテキストが空であるかどうかをチェックする必要があります。それがnullの空の戻りであり、それはコンテンツを持っている場合は、オブジェクト

if("".equals(text) || text == null){ 
      return null; 
} else { 
     return auto 
} 
関連する問題