属于特定类型的枚举

时间:2011-12-20 18:15:20

标签: java types enums

这个问题可能听起来很愚蠢,但我不知道如何解决这个问题:

我有一些枚举类可以为我正在开发的应用程序建模一些常量,例如:

public enum Daily{GROCERIES, SUPPLIES,....}

public enum Monthly{NEWSPAPER, MAGAZINES,....}

public enum BiMonthly{....}

并且假设我有一个对象,其中包含一个以前任何枚举后建模的字段:

public class SomeObject{
    ...

    private Daily/Monthly/ByMonthly category;

    ...
}

我该如何塑造这个?我不知道是否将所有枚举放在一个类中,并使我的对象的字段为Something<E extends Enum>类型,或者创建一个没有方法的接口,我的所有枚举都实现并创建我的对象类型的字段{ {1}}。

由于

3 个答案:

答案 0 :(得分:3)

我认为你应该以不同的方式构建你的枚举/类。类似的东西:

public enum Recurrence {
    DAILY,
    MONTHLY,
    BIMONTHLY
}

public enum Distributions {
    GROCERIES(Recurrence.DAILY),
    SUPPLIES(Recurrence.DAILY),
    NEWSPAPER(Recurrence.MONTHLY),
    MAGAZINES(Recurrence.BIMONTHLY);

    private Recurrence recurrence;

    private Distributions(Recurrence recurrence) {
        this.recurrence = recurrence;
    }

    public Recurrence getRecurrence() {
        return this.recurrence;
    }
}

public class SomeObject{
    ...

    private Distributions distribution;

    ...
}

答案 1 :(得分:1)

听起来好像你的模特里面了。如果您有类别枚举,那该怎么办:

public enum Category { DAILY, MONTHLY, BIMONTHLY }

代替?

答案 2 :(得分:0)

您可以在类本身内创建枚举,如此

  

public class SomeObject {       ...

     

public enum Daily {GROCERIES,SUPPLIES,....}

     

public enum每月{报纸,杂志,......}

     

public enum BiMonthly {....}

... }

然后为每个枚举创建bean(setter / getter方法),然后你可以像普通变量一样简单地访问这些枚举。