0

?私はこれまで演算子を使用したことがなく、それがどのように機能するかを理解しようとしています。

私は数え切れないほどのページを読んでいて、自分で試してみることにしました。

私は次のステートメントを持っています:

 getSelection().equalsIgnoreCase("Måned") ? calendarView.currentlyViewing.set(Calendar.Year) : showPopup();

左側(ブール値)がtrueであるかどうかわからない限り、calendarView.toを年に設定し、そうでない場合(getSelectionがmånedと等しくない)、メソッドを呼び出します。showPopup();

しかし、これをeclipseに入力すると、構文エラーが発生します。

誰かが私が間違っていることを説明できますか?

4

1 に答える 1

15

条件? :演算子を使用して、実行するステートメントを決定しようとしています。それはその意図ではありません。条件演算子をステートメントとして使用することはできません。全体的な結果として使用する式を選択するだけです。

したがって、これは問題ありません。

foo(condition ? nonVoidMethod1() : nonVoidMethod2());

しかし、これはそうではありません:

condition ? voidMethod1() : voidMethod2();

ifここでステートメントを使用する必要があります。

if (getSelection().equalsIgnoreCase("Måned")) {
    calendarView.currentlyViewing.set(Calendar.Year);
} else {
    showPopup();
}
于 2013-03-27T11:38:47.650 に答える