我项目的首席开发人员已经将项目的toString()实现称为"pure cruft",并希望将它们从代码库中删除.
我已经说过这样做意味着任何希望显示对象的客户都必须编写自己的代码来将对象转换为字符串,但是回答"是的,他们会".
具体来说,这个系统中的对象是矩形,圆形等图形元素,当前表示是显示x,y,比例,边界等...
那么,人群在哪里撒谎?
什么时候你应该什么时候不应该实现toString?
我执行equals(),hashCode()并toString()通过在Bean所有可用字段我的实体.
当我尝试比较相等或者打印obj状态时,我在前端得到了一些Lazy init Exception.那是因为实体中的某些列表可以延迟初始化.
我想知道实现equals()和toString()实体对象的正确方法是什么.
public class Category {
private Category parentCategory;
private Set<Category> childCategories;
private String name;
public Category() {
childCategories = new HashSet<Category>();
}
public Category getParentCategory() {
return parentCategory;
}
public void setParentCategory(Category parentCategory) {
this.parentCategory = parentCategory;
}
public Set<Category> getChildCategories() {
return childCategories;
}
public void setChildCategories(Set<Category> childCategories) {
this.childCategories = childCategories;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Category [childCategories=" + childCategories + …Run Code Online (Sandbox Code Playgroud)