Thrift使用数据和行为枚举定义

时间:2011-06-30 17:24:58

标签: enums thrift

如果有其他人正在尝试从thriftIDL生成以下java类,那么关于thrift的新手问题。我看到它只支持分配的32位非负整数值。这是因为在其他语言中缺少对以下枚举类型的支持吗?我没有看到这种情况是否可以在节俭IDL中完成。

public enum ExceptionTypes {

        ERROR_THIS("APP_EXP_001","Some message"), ERROR_THAT(...etc

    private String errorCode;

    private String defaultMessage;

    private ExceptionTypes(String errorCode, String defaultMessage) {
        this.errorCode = errorCode;
        this.defaultMessage = defaultMessage;
    }

    public String getErrorCode() {
        return this.errorCode;
    }

    public String getDefaultMessage() {
        return this.defaultMessage;
    }
}

1 个答案:

答案 0 :(得分:1)

无法向Thirft枚举添加行为描述,主要是因为Thirft旨在小而且适用于多种语言。

但是,你可以自己编写一个构造函数,当给出thirft一个时,它会创建一个类似上面的java枚举。在从thrift层接收数据后,这将在代码中添加一层处理,但在实际使用情况下,线上使用的数据结构很少与应用程序内部使用的数据结构完全相同。

Thirft(以及任何rpc,CORBA或类似的层)用于简化网络代码并增加健壮性,而不是隐藏其存在以便人们可以忘记它。