多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
#### :-: **拓展数据组件获取方法** ``` //在按钮按下时触发 left: |- AdapterItemStack 装备物品 = this.get(0); //拿到第一个空位的物品 if(装备物品.isAir()) return; EquipInter 装备物品对象 = QuickTools.toEquip(装备物品); ExtendData 装备扩展数据 = 装备物品对象.getData("extend"); ``` <br> #### :-: **拓展数据的所有方法** >[danger] 需要注意的是,java解译器不支持泛型<> > `Set<String> keySet();` 需要 `Set sets = 装备扩展数据.keySet();` 这样接收 > `Map<String, Object> get(String type);` 需要 `Map map = 装备扩展数据.get("强化随机");` 这样接收 > `List<T> query(Class<T> from);` 需要 `List attrs = 装备扩展数据.query(Attr.class);` >[info] 但是用法还是跟java一样 > for(Attr attr : attrs){ > //相应操作 > } ``` public interface ExtendData { /** * 所有类型 */ Set<String> keySet(); /** * 类型下的所有内容 * * @param type 类型 * @return 具体是什么只有你自己知道 */ Map<String, Object> get(String type); /** * 移除类型 * * @param type 类型 * @return 移除的内容 */ Map<String, Object> remove(String type); /** * 移除内容 * * @param type 类型 * @param subType 子类型 * @return 移除的内容 */ Object remove(String type, String subType); /** * 获取内容 * * @param type 类型 * @param subType 子类型 * @return 应该只有你知道的内容 */ Object get(String type, String subType); /** * @param type 类型 * @param subType 子类型 * @return 是否有内容 */ boolean has(String type, String subType); /** * 设置值 * * @param type 类型 * @param subType 子类型 * @param obj 内容 * @return 被替换的内容 */ Object set(String type, String subType, Object obj); /** * 查询属性 */ List<Attr> queryAttr(); /** * 查询类型下的属性 * * @param type 类型 */ List<Attr> queryAttr(String type); /** * 查询创建器创建的内容 * * @param type 类型 * @param creator 创建器类型 * @return 创建器创建的内容 */ List<Object> queryCreator(String type, String creator); /** * 查询创建器创建的内容 * * @param creator 创建器类型 * @return 创建器创建的内容 */ List<Object> queryCreator(String creator); /** * 查询所有类的内容 * * @param from 类/父类 * @param <T> 泛型 * @return 类型或子类的list */ <T> List<T> query(Class<T> from); /** * 查询所有类的内容 * * @param type 类型 * @param from 类/父类 * @param <T> 泛型 * @return 类型或子类的list */ <T> List<T> query(String type, Class<T> from); } ```