これだけで問題は、あなたが文ではない表現を与えたことです。割り当てで
は、しかし、それは大丈夫です:
import java.util.*;
public class Test {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<String, String>();
String x = map.containsKey("A") ? "" : "";
}
}
私は問題はあなたが示されていないいくつかのコードである疑いがあります。より多くの文脈を与えてください。理想的には私のような短いプログラムですが、エラーを示しています。
編集:質問を編集したので、おそらく別のエラーが発生します。条件付き演算子は有効なスタンドアロン文ではなく、各オペランドは非空白式でなければなりません(他の注意点もあります)。だからではなく、この:
getResponseDataMap().containsKey("A") ?
a.setText(getResponseDataMap().get("A").toString()):""
私は容疑者したい:あなたの場合は、
一方
Object response = getResponseDataMap().get("A");
a.setText(response == null ? "" : response.toString());
:
a.setText(getResponseDataMap().containsKey("A") ?
getResponseDataMap().get("A").toString() : null);
はしかし、私は個人としてこれを書きます地図にキーが含まれているときにテキストを設定したい場合は、元のif
statemeに戻ってください。 nt、またはおそらく:
Object response = getResponseDataMap().get("A");
if (response != null) {
a.setText(response.toString());
}
コンパイルエラー削除し、条件操作の周りにブラケットを入れていますか? –
コード全体を表示できますか? – evilone
スペースを追加してください。コンパイラが "A"と思うかもしれませんか? "": ""は単一の文字列です – shift66