如何正确地将一个字符串与另一个字符串进行比较

How to properly compare a string to another string

我遇到以下 if 情况的问题。

if(!(type=="image/jpeg" || type=="image/png" || type=="image/gif")){
    throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Only jpeg, png or gif", ""));
}

typeimage/jpeg时,它仍然抛出ValidatorException。当我将 type 直接硬编码为 image/jpeg 时,它起作用了。所以我希望你能帮助我,因为我真的不知道问题在哪里。

我测试了你的代码,发现了异常,为什么你没有得到正确的输出,你需要改变

if(!(type.equals("image/jpeg") || type.equals("image/png") || type.equals("image/gif")){
            throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Only jpeg, png or gif", ""));
        }

注意:首先你需要使用 System.out.println("Type value: "+type); 调试输出格式,然后需要使用相同的格式来检查 if 语句中的验证,如 [=18] =]type.equals("jpeg") 或 type.equals("image/jpeg").

它对我有用,我希望它对你也有用。