thrift需要使用对应语法编写接口用于生成对应语言的接口,本文简单介绍会用到的数据类型

基础类型

bool/byte/i16/i32/i64/double/string
其中没有无符号整型类型。

containers

集合类 list/set/map

structs

自定义将多个字段封装起来的数据类型,每个字段有一个整形标志位,类型,字段名和可选的默认值

struct Obj {
  1: i32 num1 = 0,		//默认值
  2: i32 num2,
  3: Operation op,		//可以嵌套其他类型
  4: optional string comment,	//可选字段
  5: list<i32> l		//list
  6: map<i32,string> m	//map
  7: set<string> s	//set
}

枚举

enum Operation {
  ADD = 1,
  SUBTRACT = 2,
  MULTIPLY = 3,
  DIVIDE = 4
}

exception

可以定义异常用于返回服务调用发生错误的情况

exception InvalidOperation {
  1: i32 whatOp,
  2: string why
}

java文件

生成的java文件包含默认构造方法,包含全字段的构造方法,以及各个字段的get/set/isSet/unSet方法用于构建实例。