JAVA使用不同散列的相同对象
我在数据库中有两个来自数据库的对象它是同一个对象,但它们有不同的哈希:JAVA使用不同散列的相同对象,java,Java,我在数据库中有两个来自数据库的对象它是同一个对象,但它们有不同的哈希: GroupType groupType = groupTypeDao.findById(3); GroupType groupType1 = groupTypeDao.findById(3); System.out.println(groupType); System.out.println(groupType1); 我得到这个输出: GroupType@6040 GroupType@6041 为什么呢?技术堆栈:Sp
GroupType groupType = groupTypeDao.findById(3);
GroupType groupType1 = groupTypeDao.findById(3);
System.out.println(groupType);
System.out.println(groupType1);
我得到这个输出:
GroupType@6040
GroupType@6041
为什么呢?技术堆栈:Spring、JavaFX、Hibernate
我还有一个关于Spring和Hibernate的项目。两个项目中的配置文件相同。Hibernate版本也相同。但在另一个项目中,这会产生相同的哈希代码。您打印的是对象引用。如果您通过调用new来创建每个引用,它们确实是不同的
您需要根据有效的Java重写equals、hashCode和toString以获得所需的行为。您打印的是对象引用。如果您通过调用new来创建每个引用,它们确实是不同的 您需要根据有效的Java重写equals、hashCode和toString以获得所需的行为。System.out.printlngroupType通常在Java.lang.Object上调用toString方法,并打印: getClass.getName+'@'+Integer.toHexStringhashCode 现在,HashCode可能有点误导,因为如果它没有被覆盖,那么 类对象定义的hashCode方法确实为不同的对象返回不同的整数 引用文档。System.out.printlgroupType通常调用java.lang.Object上的toString方法,并打印: getClass.getName+'@'+Integer.toHexStringhashCode 现在,HashCode可能有点误导,因为如果它没有被覆盖,那么 类对象定义的hashCode方法确实为不同的对象返回不同的整数
文档中的引号。这些不是hashCode…请执行:groupType.hashCode和groupType1.hashCode,然后查看您得到了什么…这些是默认为hashCode的toString值。。。您可能还没有实现。您看到的是字符串修饰的标识哈希代码。请参阅java.lang.ObjecttoString以了解您获得的源代码。我尝试以编程方式在TableView中选择行。我将对象保存到数据库中,用TableView加载框架,从数据库中获取所有对象的列表,并将其放入TableView,如下所示:TableView.setItemslist;然后我试着选择这个物体并聚焦它。tableView.getSelectionModel.selectobject。但在列表中找不到对象,因为它有另一个哈希代码。行未选中,未突出显示。这些不是HashCodes…Do:groupType.hashCode和groupType1.hashCode,看看您得到了什么…这些是默认为hashCode的toString值。。。您可能还没有实现。您看到的是字符串修饰的标识哈希代码。请参阅java.lang.ObjecttoString以了解您获得的源代码。我尝试以编程方式在TableView中选择行。我将对象保存到数据库中,用TableView加载框架,从数据库中获取所有对象的列表,并将其放入TableView,如下所示:TableView.setItemslist;然后我试着选择这个物体并聚焦它。tableView.getSelectionModel.selectobject。但在列表中找不到对象,因为它有另一个哈希代码。行未选中,未高亮显示。