java – 气馁的方法,不推荐使用
发布时间:2020-12-14 19:34:26 所属栏目:Java 来源:网络整理
导读:一些 java类需要具有带有公共getter和setter的私有属性才能正常运行.例如,JSF bean和JPA实体需要它们.如果它不是那些库,可能有一些属性不应该有任何getter,绝对不是setter.通常也不鼓励空构造函数供自定义代码使用.例如 @Entitypublic class MyEntity implem
一些
java类需要具有带有公共getter和setter的私有属性才能正常运行.例如,JSF bean和JPA实体需要它们.如果它不是那些库,可能有一些属性不应该有任何getter,绝对不是setter.通常也不鼓励空构造函数供自定义代码使用.例如
@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更多的方法来告诉不应该使用的方法? 解决方法
JPA实体不需要公共getter和setter.使用反射设置值(至少在使用您可能正在使用的EclipseLink或Hibernate时).
在这个特殊的例子中,你可以简单地将设置者排除在外,我已经养成了习惯并且从未遇到过问题.注意:当涉及到属性和getter / setter时,坚持Java命名约定.一些库/框架(错误的imo)依赖于此. 至于问题的全球概念,我很惊讶我没有看到包含文档的建议.文档已经,现在,并且可能始终是您与代码用户的最佳沟通. /** * WARNING! DO NOT USE THIS UNLESS YOU ARE GOD! * This will probably break stuff unless... * .... */ public void doEvilHackishThings() { // Stuff happens here. } 如果您正确记录代码,开发人员就会知道他们何时可能会破坏代码.确保您不应用巫毒代码等.良好的文档详细描述了它的作用以及它是如何做到的.没有理解为什么它是邪恶的,没有正确思想的开发人员会触摸示例方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |