pha*_*ous 0 java linkedhashmap generic-method
假设我有一辆超级汽车,我的子类别是本田、丰田和雷克萨斯。
我有 3 个 LinkedHashMap,使用每个子类作为值:
LinkedHashMap<String, Honda> hondaModels = new LinkedHashMap<String, Honda>();
LinkedHashMap<String, Toyota> toyotaModels = new LinkedHashMap<String, Toyota>();
LinkedHashMap<String, Lexus> lexusModels = new LinkedHashMap<String, Lexus>();
Run Code Online (Sandbox Code Playgroud)
我想要实现的是这样的:
public <T> boolean checkModel(LinkedHashMap<String, <T>> lineup, String model) {
if (lineup.containsKey(model)) {
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我是否可以通过指定 LinkedHashMap 并使用通用值作为参数来创建方法,这样我就不必为所有 3 个 LinkedHashMap 重复相同的方法?
如果您只想检查映射是否包含密钥,则可以使用通配符?。
public boolean checkModel(Map<String, ?> lineup, String model) {
// trim any leading or trailing whitespace for the given vehicle model
model = model.trim();
if (lineup.containsKey(model)) {
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
现在,只要键是字符串,该方法就可以接受任何映射。
如果您只想接受以字符串作为键、以汽车作为对象的地图,您可以Map<String, ? extends Car>改为编写。无需使用类型参数。
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |