加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 00:47:58 所属栏目:Java 来源:网络整理
导读:我有一个 Android应用程序,我想检查一下安装的应用程序名称是否匹配传递给包含此代码的函数的字符串.代码和示例如下: private Boolean checkInstalledApp(String appName){ PackageManager pm = this.getPackageManager(); Intent mainIntent = new Intent(
我有一个 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中,新手遇到的最常见的错误之一是使用==来比较字符串.你必须记住,==比较对象引用,而不是内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读