某些java类需要具有私有属性和公共getter和setter才能正常工作。例如JSF bean和JPA实体需要它们。如果不是那些图书馆,那么可能有些属性不应该有任何获取者,也不应该有任何设置者。空的构造函数通常不鼓励用于自定义代码。例如,不鼓励使用的方法
@Entity
public class MyEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
public MyEntity() {}
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
}
在这个类中,方法setId不应该被手动代码调用。该方法不被弃用,所以@Deprecated注解将是错误的。
是否有另一种方法比@Deprecated告诉方法不应该被使用?
这个问题与JSF和JPA无关。不过,值得一提的是这些框架。 – 2013-03-07 18:55:27
你的例子不是很好。为什么你会在这种情况下阻止使用setter?它是一个可以存储各种数据组合的实体对象,当然你希望能够设置它的值。 – Perception 2013-03-07 18:55:52
在初始化设置后,您不想更改其唯一标识符。 – 2013-03-07 19:01:44