java – 为什么我的String到String比较失败?

前端之家收集整理的这篇文章主要介绍了java – 为什么我的String到String比较失败?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 Android应用程序,我想检查一下安装的应用程序名称是否匹配传递给包含此代码函数的字符串.代码和示例如下:
private Boolean checkInstalledApp(String appName){
    PackageManager pm = this.getPackageManager(); 
    Intent mainIntent = new Intent(Intent.ACTION_MAIN,null); 
    mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
    List<ResolveInfo> list = pm.queryIntentActivities(mainIntent,0);
    Boolean isInstalled = false;
    for(ResolveInfo info: list) {
      if (info.activityInfo.applicationInfo.loadLabel( pm ).toString()==appName){
          isInstalled = true;
          break;  
      }
    } 

    return isInstalled;
}

假设你调用了checkInstalledApp(“Setcpu”);手机上的应用程序名称被称为相同的事情,它应该返回true.但是,它从来没有.我记录结果,它应该匹配,但没有.任何人都可以启发我为什么这不工作?

解决方法

使用String的equals()方法代替==运算符来比较字符串:
info.activityInfo.applicationInfo.loadLabel( pm ).toString().equals(appName)

在Java中,新手遇到的最常见的错误之一是使用==来比较字符串.你必须记住,==比较对象引用,而不是内容.

猜你在找的Java相关文章