以java的基础类型long为例,它有对应的包装类Long,平时使用时,因为可以自动拆包,所以与基础数据类型差别也不大,如:
Long l1=5L;
if(l1==2L){
......
}
现在数据库中有个与数据库对应的实体对象user
public class User{
Long id;
String name;
}
现在我内存中有一个List<User>对象,我需要遍历该List,找出Long值为2的User对象
public User findUser(List<User>users,User demo){
for(User user:users){
if(user.getId()==demo.getId()){//错误的比较方式
return user;
}
}
}
然而明明List中有这个对象,返回结果中却没有!
因为Id为Long类型的对象,而不是基础数据类型!!!不是基础数据类型!!!不是基础数据类型!!!
包装类与包装类之间比较不能用==,而只能用equals
public User findUser(List<User>users,User demo){
for(User user:users){
if(user.getId().equals(demo.getId())){//正确的比较方式
return user;
}
}
}