关于thrift的一个新手问题,如果有其他人正在尝试从thriftIDL生成以下java类 . 我看到它只支持分配的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 回答
没有办法向Thirft枚举添加行为描述,主要是因为Thirft意图很小并且适用于许多语言 .
但是,您可以自己编写一个构造函数,在给定thirft一个时创建一个类似上面的java枚举 . 在从thrift层接收数据后,这将在代码中添加一层处理,但在实际使用情况下,线上使用的数据结构很少与应用程序内部使用的数据结构完全相同 .
Thirft(和任何rpc,CORBA或类似的层)用于简化网络代码并增加健壮性,而不是隐藏它的存在以便人们可以忘记它 .