Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根除陈词滥调_Java - Fatal编程技术网

Java 根除陈词滥调

Java 根除陈词滥调,java,Java,这两个类肯定有一些样板代码。如果多重继承成为现实,我会在这里组织两个mixin:IdMixin和ArchivedMixin。因此,类将根本不包含实体。但在Java中这是不可能的 可以使用多个接口,但如果我没有弄错的话,它们不能包含代码本身 如何在Java中处理这样的问题?如果在方法上允许这些注释,而不仅仅是在字段(例如getter或setter)上,那么您可以在接口中声明它们,并实现任意数量的接口。尽管这些字段仍将在每个派生类中声明,但您不需要为它们重新声明注释 否则,您必须创建一个类层次结构,

这两个类肯定有一些样板代码。如果多重继承成为现实,我会在这里组织两个mixin:IdMixin和ArchivedMixin。因此,类将根本不包含实体。但在Java中这是不可能的

可以使用多个接口,但如果我没有弄错的话,它们不能包含代码本身


如何在Java中处理这样的问题?

如果在方法上允许这些注释,而不仅仅是在字段(例如getter或setter)上,那么您可以在接口中声明它们,并实现任意数量的接口。尽管这些字段仍将在每个派生类中声明,但您不需要为它们重新声明注释

否则,您必须创建一个类层次结构,以允许您需要的灵活性:

public class Toponym {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public int id;

    @Column(columnDefinition="TEXT default ''", nullable = false)
    public String name;
}


public class LevelOneEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public int id;


    @Column(columnDefinition = "boolean default false", nullable = false)
    private boolean archived;
}



public class LevelTwoEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public int id;

    @Column(columnDefinition = "boolean default false", nullable = false)
    private boolean archived;
}

当您添加更多的组合时,这可能会变得非常复杂。

您可能应该添加要删除标题中的样板注释和字段的内容。
class Entity // contains annotated ID field and declares the generic ID type
class ArchivedEntity extends Entity // if you don't expect to have non-entity archived classes (i.e. archived objects with no ID)
... etc