传统上我总是由Hibernate实体制作如下:
@Entity
@Table(name = "my_table")
@SuppressWarnings("serial")
public class MyEntity extends Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private long id;
@Column(name = "name")
private String someName;
@Column(name = "description")
private String description;
和吸气者和制定者看起来像:
public String getSomeName()
{
return someName;
}
public void setSomeName(String someName)
{
this.someName = someName;
}
public String getDescription()
{
return description;
}
public void setDescription(String description)
{
this.description = description;
}
接下来是Eclipse生成的hashcode,equals和toString方法。
现在我被要求将我的二传手改为:
public MyEntity setSomeName(String someName)
{
this.someName = someName;
return this;
}
public MyEntity setDescription(String description)
{
this.description = description;
return this;
}
这是我们可以做的链接:
MyEntity entity = new MyEntity().setSomeName("x").setDescription("y");
这不会破坏我对CRUD的单元测试,DAO似乎仍能正常工作。
令人讨厌的是,使用Eclipse,我可以很快地扼杀getter / setter,但现在我需要用“return this;”来调整我的所有setter。
首先......我不确定,但这是java 8的新常态吗?这会对长期错误产生任何不利影响,这是否会占用更多内存,或者这是否会高效,我应该这样做?
自从JDK 1.3和过去的15年以来,我一直在做Java,我知道每一项新技术的进步都有它的怪癖。我只是想知道这里有没有?
谢谢!