什么时候用Integer什么时候用int??

qx8668 2010-01-18 05:48:43
什么时候用Integer什么时候用int,

这问题现在很困扰

拷一下另一贴的问题

***************************************
估计是id的问题,把 role.id==this.id改一下

role.id!=null&&role.id.equals(this.id)

Integer这个对象,只能在0~255才能使用==吧

是到127
***************************************
到底==对较对于Integer怎么用?
...全文
687 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wly0502 2010-01-18
  • 打赏
  • 举报
回复
对象用equals
常量可用==
qx8668 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 hedangqing 的回复:]
study
[/Quote]
忘了说下总结了,在WEB 小于127 用==也不能true
刚才测试都是小于127

在本地JAVA小于127用==可以 但大于127就不行了
2到20个英文 2010-01-18
  • 打赏
  • 举报
回复
study
qx8668 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 hedangqing 的回复:]
引用 8 楼 qx8668 的回复:
在有WEB应用的情况测试 一定要equals

在本地JAVA工程测试 == 和 equals都一样。。


怎么回事??难道WEB tomcat struts ... 用的是老版本

Java codepublicboolean equals(Object obj) {if (obj==null)returnfalse;else {if(objinstanceof Role){
                Role role= (Role)obj;if(role.getId()==this.getId()){//本地JAVA工程一样returntrue;
                }
            }returnfalse;
        }
    }



怎么会

你自己写一个
Integer a = 88888;
Integer b = 88888;

不可能用==会返回true


[/Quote]
正解,谢谢
2到20个英文 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qx8668 的回复:]
在有WEB应用的情况测试 一定要equals

在本地JAVA工程测试 == 和 equals都一样。。


怎么回事??难道WEB tomcat struts ... 用的是老版本

Java codepublicboolean equals(Object obj) {if (obj==null)returnfalse;else {if(objinstanceof Role){
Role role= (Role)obj;if(role.getId()==this.getId()){//本地JAVA工程一样returntrue;
}
}returnfalse;
}
}
[/Quote]


怎么会

你自己写一个
Integer a = 88888;
Integer b = 88888;

不可能用==会返回true

网络咖啡 2010-01-18
  • 打赏
  • 举报
回复
绝大部分时候用int,需要以对象的形式存储数字时用Integer
IToneY 2010-01-18
  • 打赏
  • 举报
回复
学习!!
qx8668 2010-01-18
  • 打赏
  • 举报
回复


在有WEB应用的情况测试 一定要equals

在本地JAVA工程测试 == 和 equals都一样。。



怎么回事??难道WEB tomcat struts ... 用的是老版本


public boolean equals(Object obj) {
if (obj == null)
return false;
else {
if(obj instanceof Role){
Role role = (Role)obj;
if(role.getId()==this.getId()){//本地JAVA工程一样
return true;
}
}
return false;
}
}
marf_cn 2010-01-18
  • 打赏
  • 举报
回复
这个有什么困惑的。。。
我的经验是,通常在泛型的时候才用Integer,其他时候用处不多
2到20个英文 2010-01-18
  • 打赏
  • 举报
回复
Integer a = 127;
Integer b = 127;

a==b true

Integer a = 128;
Integer b = 128;

a==b false

基本类型全部直接用==就可以了

引用类型值比较用equals
kobeBryant_ 2010-01-18
  • 打赏
  • 举报
回复
Integer是引用类型,int是基本类型
int的比较可以直接用==
但是Integer的比较,如果用==的话,就是比较的内存地址了
所以引用类型就要用equals,而且Integer是从写了equals方法的。。
qx8668 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 nyeah 的回复:]
int 是java的基本数据类型。
Integer是它的封装类。
JDK1.5以前用法有点不同,
JDK1.5以后,应该没必要区分“什么时候用Integer什么时候用int”, java自己可以搞定。

[/Quote]
对较的时候Integer要用equals

刚试过在重写equals
qx8668 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hedangqing 的回复:]
对象用equals
常量可用==
[/Quote]
用hibernate好多人都用Integer为什么啊?
nyeah 2010-01-18
  • 打赏
  • 举报
回复
int 是java的基本数据类型。
Integer是它的封装类。
JDK1.5以前用法有点不同,
JDK1.5以后,应该没必要区分“什么时候用Integer什么时候用int”, java自己可以搞定。
2到20个英文 2010-01-18
  • 打赏
  • 举报
回复
对象用equals
常量可用==

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧