--- sidebar_position: 1 title: IType 类型定义 description: ZHub 客户端 IType 接口类型定义 --- # IType 类型定义 IType 接口提供了 ZHub 客户端中常用的类型定义,用于 RPC 调用和消息订阅时的类型安全。 ## 接口定义 ```java package dev.zhub; import com.google.gson.reflect.TypeToken; import java.util.List; import java.util.Map; public interface IType { TypeToken STRING = new TypeToken() {}; TypeToken SHORT = new TypeToken() {}; TypeToken INT = new TypeToken() {}; TypeToken LONG = new TypeToken() {}; TypeToken DOUBLE = new TypeToken() {}; TypeToken> MAP = new TypeToken>() {}; TypeToken>> LMAP = new TypeToken>>() {}; } ``` ## 使用示例 ### RPC 调用 ```java // 字符串类型 RPC RpcResult result = zhub.rpc("user.getInfo", "user123", IType.STRING); // 整数类型 RPC RpcResult count = zhub.rpc("user.getCount", "group1", IType.INT); // Map 类型 RPC RpcResult> userInfo = zhub.rpc("user.getDetails", "user123", IType.MAP); ``` ### 消息订阅 ```java // 订阅字符串消息 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` - 整数类型,用于计数器、ID - `LONG` - 长整数类型,用于时间戳、大数值 - `DOUBLE` - 双精度浮点类型,用于价格、比率 - `MAP` - 键值对映射,用于结构化数据 - `LMAP` - Map 列表,用于批量数据 ## 注意事项 - 优先使用 IType 中提供的类型 - 自定义类型使用 `new TypeToken(){}` 构建 - 字符串消息默认类型`new TypeToken(){}`,无需显式声明