Java - “if”语句的问题

时间:2012-05-07 03:51:21

标签: java if-statement

我必须在某处出现某种语法错误,因为correctiploginip都相同,但我的代码仍然说它们不相等。

        if(correctip != loginip){
            event.disallow(null, "Access is denied to user " + name + ". If you believe this is in error, contact an admin.");
            System.out.println(loginip);
            System.out.println(correctip);
            System.out.println("[Denied] HIGHRISKUSER " + name + " denied login. IP Att: " + loginip + " | IP Cor: " + correctip);
        }else{
            System.out.println("[Allowed] HIGHRISKUSER " + name + " allowed login. IP Att: " + loginip + " | IP Cor: " + correctip);
        }

correctiploginip完全相同。是否有其他可能导致问题的原因?

3 个答案:

答案 0 :(得分:4)

correctiploginip可能是String。在这种情况下,您应该使用equals比较器:

if(correctip != null && correctip.equals(loginip)) {
    //your logic goes here...
}

答案 1 :(得分:1)

如果两个变量都是字符串,则需要使用correctip.equals(loginip)correctip.equalsIgnoreCase(loginip)进行比较。

答案 2 :(得分:1)

loginip和correctip的类型是什么?

根据您的陈述,我假设该类型不应该是原始的(例如:int,long,short等)。相反,它将是一个对象(可能是字符串)。所以loginip或correctip实际上是这两个对象的引用。

等号仅确保其参考地址的相等性。要比较两个对象,您应该使用方法equalsequalsIgnoreCase代替=