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

Java如何将值为泛型的LinkedHashMap作为参数创建通用方法

问题解答

完全可以实现,你原有写法的核心逻辑是对的,只需要修正泛型声明的语法错误即可。

首先你原来的方法签名里LinkedHashMap<String, <T>>多了一层多余的尖括号,把内层的尖括号删掉就行,根据你的使用场景可以选下面两种实现:

  1. 仅适配Car及其子类的场景(更符合你现有类结构,类型更安全)
// 限定泛型T必须为Car的子类,避免传入不相关类型的Map
public <T extends Car> boolean checkModel(LinkedHashMap<String, T> lineup, String model) {
    // 可以直接返回containsKey的结果,不需要冗余的if判断
    return lineup.containsKey(model);
}
  1. 通用任意值类型的场景(适用范围更广)
public <T> boolean checkModel(LinkedHashMap<String, T> lineup, String model) {
    return lineup.containsKey(model);
}

如果你不需要在方法内部操作Map的value值,还可以直接用通配符简化,连泛型声明都不需要:

public boolean checkModel(LinkedHashMap<String, ?> lineup, String model) {
    return lineup.containsKey(model);
}

上述三种写法都可以直接传入你现有的hondaModels、toyotaModels、lexusModels三个对象调用,完全不需要为不同值类型的Map重复写逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:54:04