加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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.
}

如果您正确记录代码,开发人员就会知道他们何时可能会破坏代码.确保您不应用巫毒代码等.良好的文档详细描述了它的作用以及它是如何做到的.没有理解为什么它是邪恶的,没有正确思想的开发人员会触摸示例方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读