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

安卓项目Kotlin转Java遇ArrayList参数化类原始使用告警求解

问题原因

你遇到的告警是Java泛型的原始类型使用提示:ArrayList是参数化泛型类,未指定存储的元素类型直接使用时,编译器会提示存在类型安全风险。

解决方案

你往amenities列表中添加的元素是MapsKt.hashMapOf生成的HashMap实例,该Map的键统一为String类型,值包含字符串、布尔等多种类型,所以你可以将ArrayList的泛型指定为Map<String, ?>即可消除告警。

修正后的代码如下:

ArrayList<Map<String, ?>> amenities = new ArrayList<>();

amenities.add(MapsKt.hashMapOf(
   TuplesKt.to("ID", q.amenityID),
   TuplesKt.to("bExists", q.getAnswer().equals("1")),
   TuplesKt.to("Notes", Utils.CleanStringForUpload(q.amenityNotes))
));

补充说明

  • 如果你后续需要从列表的Map中读取值,只需要根据实际业务场景强转为对应类型即可,示例:
    Boolean bExists = (Boolean) amenities.get(0).get("bExists");
    String notes = (String) amenities.get(0).get("Notes");
    
  • 如果你可以确定所有Map值的统一父类,也可以将泛型写为Map<String, Object>,效果完全一致,不会触发告警。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:09:02