gpt4 book ai didi

java - 我可以对父类(super class)的私有(private)字段进行 "override"注释吗?

转载 作者:行者123 更新时间:2023-11-30 06:02:47 25 4
gpt4 key购买 nike

使用其他编程语言 20 年,现在我是 Java 的新手,感觉自己像个菜鸟程序员...

我使用 Indexable 抽象类来扩展我所有的 @entity 类,所以我不需要将 @Id @GeneratedValue @SequenceGenerator 所有这些。我还有 Auditable@CreatedBy @CreatedDate @ModifiedBy @ModifiedDate 导致那些继承路径:

  • MostEntityClasses > AuditableClass > IndexableClass;
  • SomeEntityClasses > IndexableClass。

现在我注意到我 99% 的实体类还有:

@Column(nullable = false, unique = true) private String name;

我想将该行移动到 Indexable 类以避免那 99% 中的样板代码,但是没有 name 字段的两个类是重要的可审核类,我不想只是将所有祖先字段复制到它们以防止其上出现空名称错误。

问题是:如果我在这两个类上重写该字段的注释以使其可为空和 transient ,是否可以避免在表上创建该字段并且也不会用 null 打扰用户名字?

class SomeAuditableClass extends Audited {
//@override
@Column(nullable = true) @Transient private String name;

Is there a way to override class variables in Java? 中的内容没有太大帮助...

最佳答案

虽然不是您确切问题的答案,但解决此问题的典型方法是使用另一个类扩展 Indexable,例如 IndexableWithName。然后,99% 的具有 name 字段的实体将扩展 IndexableWithName,而没有 name 字段的两个类将直接扩展 Indexable

就数据库映射而言,我不能不尝试就说您提出的建议是否可行。但我认为这将是糟糕的类设计,因为您可能会为父类(super class)中的 name 字段设置一个 getter 和一个 setter,并且它们对两个没有意义的类没有意义真的没有 name 字段。

关于java - 我可以对父类(super class)的私有(private)字段进行 "override"注释吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53697109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com