if()不起作用

时间:2012-05-13 19:24:49

标签: java android

这是我的代码:

Log.d("inf", loader);
if (loader == "Klasse"){
    Log.d("inf", "Klasse yes");
    OPTS = new String[] { //Something };
} else {
    Log.d("inf", "Klasse no");
    OPTS = new String[] { //Something };
}

在第一行中,输出正好是“Klasse”,但下一个输出是每次“Klasse no”。加载器String设置如下:

String loader = "";
Bundle exta = getIntent().getExtras();
    if(exta !=null) {
        try {
            json = new JSONObject(exta.getString("json"));
            loader = exta.getString("order");
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

你们有什么想法错了吗?

4 个答案:

答案 0 :(得分:11)

==比较运算符比较引用而不是值。您需要比较这些值,因此需要使用equals()方法。

if (loader.equals("Klasse"))

答案 1 :(得分:0)

身份(==)和平等(equals())之间存在差异。身份测试是否对象指针是相同的,所以几乎从来都不正确。平等测试对象“值”是否相同,所以它几乎总是你需要的。

答案 2 :(得分:0)

字符串比较应始终使用equals方法完成。

if(loader.equals("Klasse")) { .... }

这是因为String是一个类,并且通过使用'=='来检查它们是否是同一个对象,而不是它们。 Equals会检查您比较的字符串是否相等。

答案 3 :(得分:0)

如果==或===不起作用,请使用.equals