(Integer)session.getAttribute("userType")).equals(new Integer(1))啥意思~
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(Integer)session.getAttribute("userType")).equals(new Integer(1))啥意思~相关的知识,希望对你有一定的参考价值。
部分代码
if(((Integer)session.getAttribute("userType")).equals(new Integer(1)))
%>
<a href="personal/index.jsp">普通用户</a>
<%
else
%>
<a href="manager/index.jsp">管理员</a>
<%
%>
主要不能理解((Integer)session.getAttribute("userType")).equals(new Integer(1))
意思是不是将setAttribute中参数value值传过来转换为Int类型,如果是类型1哪么就是普通用户?哪么new Integer(1)主要是什么意思,什么语法啊?为什么不能直接写equals(1);
必须包装成Integer对象 参考技术B Integer是封装类 其实可以有其他方法方法比较的 例如((String)session.getAttribute("userType")).equals("1")本回答被提问者采纳
为啥 (Integer) 222 != (Integer) 222 在 Java 中? [复制]
【中文标题】为啥 (Integer) 222 != (Integer) 222 在 Java 中? [复制]【英文标题】:Why (Integer) 222 != (Integer) 222 in Java? [duplicate]为什么 (Integer) 222 != (Integer) 222 在 Java 中? [复制] 【发布时间】:2016-05-26 08:52:51 【问题描述】:(Integer) 1 == (Integer) 1
也是如此,这似乎是合法的。
那么,为什么它对(Integer) 222
的相等性进行了偏移?
【问题讨论】:
只是不要使用 == "因为它适用于这种情况",你是在比较对象,所以使用 equals。 【参考方案1】:Integer
是一个类。因此,要比较对象,您需要使用 equals
而不是 ==
使用较短的 Integer 实际发生的情况是,如果您使用 valueOf
方法获得 Integer
,则对于 -128 和 127 之间的值,您始终会获得相同的缓存实例。所以在这种情况下,==
有效。
如果您不使用valueOf
而是使用运算符new
显式创建一个新实例,则它不起作用。
为了更清楚,我写了 valueOf 的当前实现
public static Integer valueOf(int i)
final int offset = 128;
if (i >= -128 && i <= 127) // must cache
return IntegerCache.cache[i + offset];
return new Integer(i);
【讨论】:
但它适用于 (Integer) 1 == (Integer) 1 ? 检查更新的答案 有趣的 -1 以获得正确答案 我没有投反对票,但人们也对回答不应回答的问题的人投反对票 - 在这种情况下,因为它显然是重复的。 是的,但对正确答案投反对票总是一种不好的行为。更好的是投票结束问题,而不是否决正确答案。以上是关于(Integer)session.getAttribute("userType")).equals(new Integer(1))啥意思~的主要内容,如果未能解决你的问题,请参考以下文章
Integer.valueOf() 与 Integer.parseInt() [重复]
sql integer vs binary_integer vs pls_integer