-
JAVA中的对象比较5
一个Employee类 我重写了 equals 和 hashcode 通过里面的account属性重写的 account是唯一的 我从Session中获取当前登录的Employee对象 然后从数据库中查询所有用户放入LIST中List<Employee> empList = personnelDao.selectAllEmployee(); if (empList.contains(employee)) { //当前登录的employee empList.remove(employee); }
结果再if的条件中返回的是false 为什么??
再JUNIT中测试的没问题 再ACTION中用的时候就出问题了
已经把list里的值全打出来了 它们其中的一个HASHCODE 和传进去hashcode一样
2008年7月22日 16:27
3个答案 按时间排序 按投票排序
-
依赖的是equals方法,如果相等即可。参看如下例子。
public void testRun() throws InterruptedException { List<Employee> empList = new ArrayList<Employee>(); makeSomeData(empList); Employee loginE = new Employee(); loginE.id = "logine"; if (empList.contains(loginE)) { System.out.println("contains?!"); } } private void makeSomeData(List<Employee> lt) { Employee e1 = new Employee(); e1.id = "e1"; lt.add(e1); System.out.println("e1.hashCode()" + e1.hashCode()); } class Employee { private String id; private String name; @Override public int hashCode() { final int PRIME = 31; int result = 1; result = PRIME * result + ((id == null) ? 0 : id.hashCode()); result = PRIME * result + ((name == null) ? 0 : name.hashCode()); return result; } @Override public boolean equals(Object obj) { return true; } }
2008年7月23日 16:04
-
contains 方法依赖两个方法,equals和hashCode
你应该确保两个“等价”的对象equlas 而且具有相同的hashCode2008年7月23日 07:55
-
引用# if (empList.contains(employee)) { //当前登录的employee
# empList.remove(employee);
# }
if条件里面的employee是不是 Object类型的,而empList泛型化后是Employee类型的,
你这样试试
if (empList.contains((Employee)employee))2008年7月22日 17:38
相关推荐
总结起来,`Java对象属性数据比较,返回变化数据`这个主题涉及到Java的面向对象特性,包括对象、属性、以及反射API的使用。`ObjectCompareUtil`工具类提供了一种通用的方式来比较两个对象的属性,而`...
在这篇文章中,我们将对Java面向对象编程的基础知识进行总结和解释。面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它将程序设计看作是对象的交互,对象之间的关系和行为。 一、对象和类 在...
Java面向对象程序设计是计算机编程领域中的核心主题,它基于面向对象编程(OOP)理念,使得代码更具有模块化、可复用性和易于维护的特点。以下是对标题和描述中涉及的知识点的详细阐述: 1. **第1章:Java入门** -...
其最大特色是以六条主线贯穿全书:面向对象编程思想、Java语言的语法、Java虚拟机执行Java程序的原理、在实际项目中的运用、设计模式和性能优化技巧。同时,本书还贯穿了Sun公司的SCJP(Sun Cer......
java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象...
Java面向对象程序设计是计算机科学中的一个重要领域,它基于面向对象编程(OOP)原则,为开发者提供了构建复杂软件系统的方法。本资源包含了该课程所有章节的课后习题答案,帮助学习者深入理解Java语言的面向对象...
java 对象的容纳,java 对象的容纳,java 对象的容纳,java 对象的容纳,java 对象的容纳,java 对象的容纳,java 对象的容纳,java 对象的容纳,java 对象的容纳,java 对象的容纳,java 对象的容纳,java 对象的...
Font 类是 Java 中的一个类,用于设置程序中的字体实例对象。 Font 类有三个参数:face、style、size,分别指字体的外观、样式和大小。我们可以使用 Font 类的静态方法 getFont() 创建 Font 对象,例如:Font font =...
### Java中对象与对象引用的区别 #### 基础概念 在Java编程语言中,对象与对象引用是非常基础且重要的概念。理解它们之间的区别对于掌握Java面向对象编程至关重要。 #### 对象与引用定义 - **对象**:在Java中,...
java中把对象转化为byte数组的方法 Java 中将对象转化为 byte 数组的方法是指将 Java 对象序列化为二进制数据流,以便在网络上传输或存储。这种方法可以应用于各种领域,如分布式计算、网络通信、数据存储等。 在 ...
3. Java 中的运算符:算术运算符、比较运算符、逻辑运算符、赋值运算符等。 4. Java 中的控制结构:顺序控制结构、选择控制结构、循环控制结构等。 二、面向对象编程概念 1. 面向对象编程的基本概念:封装、继承、...
java班级管理系统(java+面向对象+源码) java班级管理系统(java+面向对象+源码) java班级管理系统(java+面向对象+源码) java班级管理系统(java+面向对象+源码) java班级管理系统(java+面向对象+源码) java班级管理...
对象中包含数据和方法,数据代表对象的状态,方法代表对象的行为。面向对象的主要概念包括封装、继承和多态性。 1. 封装(Encapsulation) 封装是面向对象设计的核心概念之一。它指的是将对象的状态(属性)和行为...
Java面向对象程序设计是编程领域中的核心概念,尤其在企业级应用开发中占据了主导地位。耿祥义版的课程着重讲解了这一主题,通过PPT和源码的形式,旨在帮助学习者深入理解并掌握Java的面向对象特性。下面将详细阐述...
JAVA中的变量可以是实例变量或静态变量,实例变量属于对象,静态变量属于类。 5. 继承的关系: 在JAVA中,父类不能替代子类,子类可以替代父类,子类继承父类的成员变量和方法。 6. 编译错误: 在JAVA中,编译错误...
1. 将Java对象转换为JSON字符串,同样使用`ObjectMapper`: ```java User john = new User(1, "John", "john@example.com"); String johnJson = mapper.writeValueAsString(john); ``` 2. 对于集合类型,如List或...
孙卫琴的java面向对象电子书 由于是图片 300m
面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它通过将数据和操作数据的方法封装在对象中,实现了程序设计的模块化和抽象化。本教程对比了两种广泛应用的面向对象语言——C++和Java...
Java面向对象程序设计是计算机科学中的一个重要主题,尤其在Java编程中。邢国波的《Java面向对象程序设计》一书旨在帮助读者理解和掌握Java语言的核心特性,特别是面向对象编程的概念。以下是根据提供的内容和标签...