在面对一些问题的java中比较Long

时间:2014-10-15 05:05:23

标签: java compare equals primitive-types

以下是我的代码来比较Long值(我相信这可能会激怒某些人)

Long userRole = new Long(-1);

    userRole = 8;

    if ( userRole !=8 || userRole != 7)

                    {               
                        showSave = false;
                        request.setAttribute("VIEW", "N");
                    }

if ( userRole == 8 || userRole == 7) // this fails

所有案件都成功了...... :(

我想要做的是如果userRole不等于8和7然后设置下面的

showSave = false;
request.setAttribute("VIEW", "N");

我真的不知道我在这里犯的是什么错误。

感谢

2 个答案:

答案 0 :(得分:3)

首先,这不是编译。

Long userRole = new Long(-1);
userRole = 8; // can't assign int to Long

您可以将其更改为

serRole = (long) 8;

或者

userRole = 8L;

然后来到其他部分。

 Long userRole = new Long(-1);
 userRole = 9L;
 boolean showSave=true;
 if (userRole != 8&&userRole!=7) { // userRole is not equal to 8 and 7 then
     showSave = false;
 }
 System.out.println(showSave);

您应该使用&&而不是||

Out put:

 false

答案 1 :(得分:1)

首先,您不能直接为Long变量赋值。为此,您需要输入强制转换为Long类型或需要添加' L'符号到int literal。找到下面的修改代码

serRole =(长)8;或者serRole = 8L;

你的问题是"如果userRole不等于8和7"。我们必须写" userRole不等于8和7"在java中(userRole!= 8&& userRole!= 7)。

'&安培;&安培;'代表"和"

' ||'代表"或"。

因此,代码的工作功能如下,

长userRole = new Long(-1);

userRole = 8L;

boolean showSave = true;

if(userRole!= 8&& userRole!= 7){

 showSave = false;

}