我不知道为什么这个对象是空的。这是我项目中的一个实体。我用的是spring,lombok,hibernate和vaadin。我想示例化一个新组。在我的实体类中:
@Entity
@Data
@NoArgsConstructor
@EqualsAndHashCode(of = { "groupSid" })
@Table(name = "ad_group")
public class Group implements Comparable<Group> {
@Id
@Column(name = "group_sid")
private String groupSid;
private String name;
@ManyToMany(mappedBy = "memberOf", fetch = FetchType.LAZY)
private Set<Person> persons;
@OneToMany(mappedBy = "group", fetch = FetchType.EAGER, cascade = CascadeType.REMOVE)
private Set<Authority> authorities;
@Column(name = "jira_ticket_id")
private String ticketId;
@Override
public int compareTo(Group o) {
return getName().compareTo(o.getName());
}
@Override
public String toString() {
return name;
}
}
在组的编辑对话框中,我使用以下代码来保存组的详细信息。
btnSave.addClickListener(e -> {
Group toSave = new Group();
System.out.println("toSave: " + toSave);
toSave.setGroupSid(selectedGroup.getGroupSid());
toSave.setTicketId(tfTicket.getValue());
if (toSave != null) {
Group savedGroup = service.saveGroup(toSave);
if (savedGroup != null) {
parentView.updateUsers(selectedPerson, null, savedGroup);
}
}
close();
});
执行代码时,显示以下输出:
toSave: null
组怎么可以为空?我做错什么了?
2条答案
按热度按时间sauutmhj1#
创建对象时,对象不为null,但名称为
null
.上面的代码将执行tostring方法,名称将被打印。它返回
null
.puruo6ea2#
对象本身不是
null
仅限name
是null
这就是为什么退货
null
.这个方法在system.out.println语句中被隐式调用
System.out.println("toSave: " + toSave);