首页 > 解决方案 > 为什么这些String比较在java中有不同的结果?

问题描述

这会引发 IllegalStateException,checkArgument 方法是 Google 的com.google.common.base.Preconditions.checkArgument

checkArgument(apikey.equals("3243442-bb73-123-421f-sfsglk"), "Wrong api key.");

对比

这进入 if 块:

if (apikey.equals("3243442-bb73-123-421f-sfsglk")) {
    // do something
}

apikey 值存储在 Spring 引导配置文件中,并由@Value("${apikey}").

我知道这不是 API 密钥的完成方式,但我需要一些快速的东西来让一个小型项目来测试一些东西。

标签: javaspring-boot

解决方案


Spring-Boot不会修剪配置文件中的尾随空格。

如果您确定配置文件中的密钥是正确的,则应该通过检查:

checkArgument(apikey.trim().equals("3243442-bb73-123-421f-sfsglk"), "Wrong api key.");

推荐阅读