小编san*_*oan的帖子

Groovy枚举中的计算值

我需要创建一个具有一些预定义值的枚举或类,并且必须有一个选项来计算其他值.假设我们有这个枚举:

enum Duration {

    ONE_HOUR("1${DurationUnits.DURATION_SUFFIX_HOUR}"),
    ONE_DAY("24${DurationUnits.DURATION_SUFFIX_HOUR}"),
    ONE_WEEK("7${DurationUnits.DURATION_SUFFIX_DAY}"),
    ONE_MONTH("30${DurationUnits.DURATION_SUFFIX_DAY}")

    String duration

    Environment(String duration) {
        this.duration = duration
    }

    static String custom(Date startTime, Date endTime) {
        // TODO Calculate difference in days between the two dates  
    }

    private static class DurationUnits {
        public static final String DURATION_SUFFIX_HOUR = "h"
        public static final String DURATION_SUFFIX_DAY = "d"
    }

}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,我是否可以定义一个枚举值,比如CUSTOM代表所有非预定义值的值.也就是说,该custom(Date a, Date b)方法的通用值.我无法弄清楚如何去做,实际上我认为它甚至不可能.

作为替代方案,我正在考虑创建一个类而不是枚举,如下所示:

class Duration {

    private static final String DURATION_SUFFIX_HOUR = "h"
    private static final String DURATION_SUFFIX_DAY …
Run Code Online (Sandbox Code Playgroud)

java groovy enums

2
推荐指数
1
解决办法
497
查看次数

标签 统计

enums ×1

groovy ×1

java ×1