You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java:如何使用Param参数表示类类型,实现按类查询对应建筑数据

解决方案

你可以使用泛型结合Class<T>(Java环境)作为参数类型,既可以接收类作为入参,还能保证返回结果的类型安全,避免手动类型转换的风险。

Java 实现示例

方法定义代码:

// 泛型约束T必须是Building的子类,和你业务中的建筑父类对应即可
public <T extends Building> List<T> findBuildingsType(List<Building> buildingEntities, Class<T> targetClazz) {
    List<T> matchedBuildings = new ArrayList<>();
    for (Building building : buildingEntities) {
        if (targetClazz.isInstance(building)) {
            matchedBuildings.add(targetClazz.cast(building));
        }
    }
    return matchedBuildings;
}

调用方式:

// 直接传入Village类的Class对象即可,返回结果自动为List<Village>类型
List<Village> villageList = findBuildingsType(buildingEntities, Village.class);

其他环境说明

  • Kotlin 环境下对应参数类型为KClass<T>,调用时传入Village::class即可
  • 该方案为编译期类型安全,比传类名字符串的实现更稳定,能提前捕获类型不匹配的错误

类型匹配逻辑示意图

内容的提问来源于stack exchange,提问作者Zhenwei PENG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 10:03:04