繁体   English   中英

如果()不起作用

[英]if () not working

这是我的代码:

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 loader = "";
Bundle exta = getIntent().getExtras();
    if(exta !=null) {
        try {
            json = new JSONObject(exta.getString("json"));
            loader = exta.getString("order");
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

你们有什么主意吗?

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

if (loader.equals("Klasse"))

同一性( == )和相等性( equals() )之间是有区别的。 身份测试用于检查对象指针是否相同,因此几乎永远都不正确。 平等测试对象的“值”是否相同,因此几乎总是您所需要的。

字符串比较应始终使用equals方法进行。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM