Message类为什么不用枚举类型?

来源:3-3 RabbitMQ基础组件API封装-1

慕尼黑414820

2020-01-19 15:41:25

rt

写回答

2回答

慕标6458871

2020-04-05

public enum MessageType {

    /**
     * 迅速消息:不需要保证消息可靠性,也不需要confirm确认
     */
    RAPID(0),

    /**
     * 确认消息:不需要保证消息可靠性,需要confirm确认
     */
    CONFIRM(1),

    /**
     * 可靠性消息:不允许消息丢失
     * 保证数据库和所发消息是原子性(最终一致性)
     */
    RELIANT(2),

    /**
     * 未知类型
     */
    UNKNOWN(3);

    private int code;

    MessageType(int code) {
        this.code = code;
    }

    public static MessageType fromCode(int code) {
        return Arrays.stream(MessageType.values()).filter(it -> it.code == code).findFirst().orElse(UNKNOWN);
    }

}


0
hravenxiaokai
h 既然都有code的了,不妨再加一个value的String属性,作为code的文字说明
h020-05-10
共2条回复

Java架构师讲师团

2020-01-21

消息类型是之所以使用的字符串,是为了方便,当然枚举也可以;这个问题不需要太care,字符串和枚举均可

0

Java架构师-技术专家

千万级电商项目从0到100全过程,覆盖Java程序员不同成长阶段的核心问题与解决方案

2672 学习 · 5839 问题

查看课程