当前位置: 首页 > 面试题库 >

具有泛型的映射数组出现问题

商琛
2023-03-14
问题内容

我知道我可以做:

Map<String, Object> map = new HashMap<String, Object>();

所以我应该能够:

Map<String, Object>[] maps = new HashMap<String, Object>[10];

但这不起作用,导致编译问题。


问题答案:

这是java中泛型的怪癖。您必须像这样声明数组:

HashMap<String, Object>[] maps = new HashMap[10];

之后,您可以亲自创建每个地图,例如:

for(int i=0;i<10;i++)
{ 
    maps[i] = new HashMap<String,Object>();
}

这是擦除的结果。该数组是的数组HashMap。通用类型参数不保留。您将收到关于此的警告,但是它将编译并可以通过@SuppressWarning("unchecked")注释禁止显示警告。



 类似资料:
  • 在java 8中创建新代码后,我想清除声纳问题。 我的代码: 声纳说: Lambda应该替换为方法引用。方法/构造函数引用比使用lambda更紧凑和可读性,因此是首选。同样,空检查可以替换为对Object::isNull和Object::nonNull方法的引用。 我想要更改映射(arg-

  • 我想将泛型类型<code>Y</code>的对象映射到另一个泛型类型为<code>X</code>的对象。在mapstruct中有这样的功能吗?或者我必须为通用映射编写自定义映射器吗?当我编译上面的代码时,会出现编译错误。

  • 试图在我的业务模型中使用值对象时,我遇到了以下代码的问题: 是否有一种通用的方法来声明(string->ValueObject)映射方法?

  • 我有两张阵列图。 有没有办法用流来完成这个任务? 或者我必须通过映射迭代?

  • 问题内容: 我的问题对于HADOOP用户而言似乎很愚蠢。但是我对在地图减少问题中使用泛型感到困惑,例如“ WORD COUNT”。 我知道,泛型被基本用于类型转换和类型安全。但是我不能在这里将这个概念联系起来。 在字数问题上, 请任何人在这里让我明白泛型的使用 。如果我在问这个问题时犯了任何错误,请纠正我。 现在,我了解将泛型用于键值对(KEY IN,VALUE IN,KEY OUT,VALUE

  • 我有很多实体扩展了实体,也有很多数据扩展到 我有一个通用的存储库、服务和映射器,如下所示 我的仓库: 我的服务: 我的地图绘制者: 我想在方法中从T创建一个对象,在类中从方法中从Dto创建一个对象