IType 类型定义
IType 接口提供了 ZHub 客户端中常用的类型定义,用于 RPC 调用和消息订阅时的类型安全。
接口定义
package dev.zhub;
import com.google.gson.reflect.TypeToken;
import java.util.List;
import java.util.Map;
public interface IType {
TypeToken<String> STRING = new TypeToken<String>() {};
TypeToken<Short> SHORT = new TypeToken<Short>() {};
TypeToken<Integer> INT = new TypeToken<Integer>() {};
TypeToken<Long> LONG = new TypeToken<Long>() {};
TypeToken<Double> DOUBLE = new TypeToken<Double>() {};
TypeToken<Map<String, String>> MAP = new TypeToken<Map<String, String>>() {};
TypeToken<List<Map<String, String>>> LMAP = new TypeToken<List<Map<String, String>>>() {};
}
使用示例
RPC 调用
// 字符串类型 RPC
RpcResult<String> result = zhub.rpc("user.getInfo", "user123", IType.STRING);
// 整数类型 RPC
RpcResult<Integer> count = zhub.rpc("user.getCount", "group1", IType.INT);
// Map 类型 RPC
RpcResult<Map<String, String>> userInfo = zhub.rpc("user.getDetails", "user123", IType.MAP);
消息订阅
// 订阅字符串消息
zhub.subscribe("user.notification", message -> {
System.out.println("收到通知: " + message);
});
// 订阅 Map 消息
zhub.subscribe("user.profile", IType.MAP, profile -> {
System.out.println("用户资料: " + profile.get("name"));
});
// 订阅整数消息
zhub.subscribe("user.count", IType.INT, count -> {
System.out.println("用户数: " + count);
});
类型说明
STRING
- 字符串类型,用于文本消息INT
- 整数类型,用于计数器、IDLONG
- 长整数类型,用于时间戳、大数值DOUBLE
- 双精度浮点类型,用于价格、比率MAP
- 键值对映射,用于结构化数据LMAP
- Map 列表,用于批量数据
注意事项
- 优先使用 IType 中提供的类型
- 自定义类型使用
new TypeToken<Type>(){}
构建 - 字符串消息默认类型
new TypeToken<String>(){}
,无需显式声明