java中枚举类中如何定义抽象方法

/**请假类型 */
public enum LeaveType implements CodedEnum {

/** 未知. */
UNKNOWN(0, "Unknown") {

    @Override
    public void setHours(LeaveStats leaveStats, float hours) {
        leaveStats.setOtherLeave(leaveStats.getOtherLeave() + hours);
    }
},

/** 带薪假. */
PAIDLEAVE(1, "PaidLeave") {

    @Override
    public void setHours(LeaveStats leaveStats, float hours) {
        leaveStats.setPaidLeave(leaveStats.getPaidLeave() + hours);
    }
},

/** 婚假. */
WEDDINGLEAVE(2, "WeddingLeave") {

    @Override
    public void setHours(LeaveStats leaveStats, float hours) {
        leaveStats.setWeddingLeave(leaveStats.getWeddingLeave() + hours);
    }
},

/** 产假. */
MATERNITYLEAVE(3, "MaternityLeave") {

    @Override
    public void setHours(LeaveStats leaveStats, float hours) {
        leaveStats.setMaternityLeave(leaveStats.getMaternityLeave() + hours);
    }
},

/** 产检假. */
PREGNENCYCHECKLEAVE(4, "PregnencyCheckLeave") {

    @Override
    public void setHours(LeaveStats leaveStats, float hours) {
        leaveStats.setPregnencyCheckLeave(leaveStats.getPregnencyCheckLeave() + hours);
    }
},

/** 哺乳假. */
LACTATIONLEAVE(5, "LactationLeave") {

    @Override
    public void setHours(LeaveStats leaveStats, float hours) {
        leaveStats.setLactationLeave(leaveStats.getLactationLeave() + hours);
    }
},

/** 陪产假. */
PATERNITYLEAVE(6, "PaternityLeave") {

    @Override
    public void setHours(LeaveStats leaveStats, float hours) {

        leaveStats.setPaternityLeave(leaveStats.getPaternityLeave() + hours);
    }
},

/** 丧假. */
FUNERALLEAVE(7, "FuneralLeave") {

    @Override
    public void setHours(LeaveStats leaveStats, float hours) {

        leaveStats.setFuneralLeave(leaveStats.getFuneralLeave() + hours);
    }
},

/** 流产假. */
ABORTIONLEAVE(8, "AbortionLeave") {

    @Override
    public void setHours(LeaveStats leaveStats, float hours) {
        leaveStats.setAbortionLeave(leaveStats.getAbortionLeave() + hours);
    }
},

/** 工伤假. */
WORKINJURYLEAVE(9, "WorkInjuryLeave") {

    @Override
    public void setHours(LeaveStats leaveStats, float hours) {
        leaveStats.setWorkInjuryLeave(leaveStats.getWorkInjuryLeave() + hours);
    }
},

/** 调休. */
EXCHANGELEAVE(10, "ExchangeLeave") {

    @Override
    public void setHours(LeaveStats leaveStats, float hours) {
        leaveStats.setExchangeLeave(leaveStats.getExchangeLeave() + hours);
    }
},

/** 事假. */
AFFAIRSLEAVE(11, "AffairsLeave") {

    @Override
    public void setHours(LeaveStats leaveStats, float hours) {
        leaveStats.setAffairsLeave(leaveStats.getAffairsLeave() + hours);
    }
},

/** 病假. */
SICKLEAVE(12, "SickLeave") {

    @Override
    public void setHours(LeaveStats leaveStats, float hours) {
        leaveStats.setSickLeave(leaveStats.getSickLeave() + hours);
    }
},

/** 工休. */
WORKBREAK(13, "WorkBreak") {

    @Override
    public void setHours(LeaveStats leaveStats, float hours) {
        leaveStats.setWorkBreak(leaveStats.getWorkBreak() + hours);
    }
},

/** 旷工. */
ABSENSE(14, "Absense") {

    @Override
    public void setHours(LeaveStats leaveStats, float hours) {
        leaveStats.setAbsence(leaveStats.getAbsence() + hours);
    }
};

/** The code. */
private final int code;

/** The resource id. */
private final String resourceId;

public abstract void setHours(LeaveStats leaveStats, float hours);

/**
 * Value of.
 *
 * @param code
 *            the code
 * @return the leave type
 */
public static LeaveType valueOf(final int code) {
    for (final LeaveType leaveType : LeaveType.values()) {
        if (leaveType.getCode() == code) {
            return leaveType;
        }
    }
    throw new IllegalStateException("Never expected here");
}

/**
 * Instantiates a new leave type.
 *
 * @param code
 *            the code
 * @param resourceId
 *            the resource id
 */
private LeaveType(final int code, final String resourceId) {
    this.code = code;
    this.resourceId = resourceId;
}

/*
 * (non-Javadoc)
 * 
 * @see com.microstar.constants.Localizable#getResourceId()
 */
@Override
public String getResourceId() {
    return this.resourceId;
}

/*
 * (non-Javadoc)
 * 
 * @see com.microstar.constants.CodedEnum#getCode()
 */
@Override
public int getCode() {
    return this.code;
}

}


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值