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

初始化Guava ImmutableMap

司马昕
2023-03-14
问题内容

番石榴提供了一个不错的快捷方式来初始化地图。但是,当我的地图初始化为9个条目时,出现以下编译器错误(Eclipse Indigo)。

of(K, V, K, V, K, V, K, V, K, V)类型中的方法ImmutableMap不适用于参数 (String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String)

ImmutableMap<String,String> myMap = ImmutableMap.of(
        "key1", "value1", 
        "key2", "value2", 
        "key3", "value3", 
        "key4", "value4", 
        "key5", "value5", 
        "key6", "value6", 
        "key7", "value7", 
        "key8", "value8", 
        "key9", "value9"
        );

该消息似乎表明

ImmutableMap的最大大小为四对键值。

显然,情况并非如此,但我不知道该怎么做才能增加初始化程序的大小。

有人可以告诉我缺少了什么吗?


问题答案:

请注意,您的错误消息仅包含五K, V对,总共10个参数。这是设计使然;ImmutableMap类提供了六种不同的of()方法,接受零到五个键值对。没有of(...)重载接受varags参数,因为KV可以是不同的类型。

您想要一个ImmutableMap.Builder

ImmutableMap<String,String> myMap = ImmutableMap.<String, String>builder()
    .put("key1", "value1") 
    .put("key2", "value2") 
    .put("key3", "value3") 
    .put("key4", "value4") 
    .put("key5", "value5") 
    .put("key6", "value6") 
    .put("key7", "value7") 
    .put("key8", "value8") 
    .put("key9", "value9")
    .build();


 类似资料:
  • Initialization 初始化 Although it doesn’t look superficially very different from initialization in C or C++, initialization in Go is more powerful. Complex structures can be built during initialization a

  • 初始化是为类、结构体或者枚举准备实例的过程。这个过需要给实例里的每一个存储属性设置一个初始值并且在新实例可以使用之前执行任何其他所必须的配置或初始化。 你通过定义初始化器来实现这个初始化过程,它更像是一个用来创建特定类型新实例的特殊的方法。不同于 Objective-C 的初始化器,Swift 初始化器不返回值。这些初始化器主要的角色就是确保在第一次使用之前某类型的新实例能够正确初始化。 类类型的

  • new iSlider(DOM, DATA, OPTIONS) Name Type Description DOM dom 容器dom节点 DATA Array 数据列表 OPTIONS Object 配置项 DOM new iSlider(DOM, DATA, OPTIONS); {HTMLElement} 容器dom节点 作为第一个参数并不是必须的,会被OPTIONS.dom覆盖,但是这十分必

  • 确认初始化操作 1)初始化操作用来清空此统计ID的统计数据 2)与启用新的统计ID不同的是,初始化操作使您不需更换网站上的统计代码就可以重新开始统计 注意:初始化操作将清除此统计ID的所有统计数据,此操作不可恢复!!!

  • 创建版本库 git 基于文件夹(工作树)进行版本控制,在一个文件夹中创建 git版本库: $ cd project/ $ git init Initialized empty Git repository in .git/ 输出信息:在当前文件夹的 .git/ 目录下创建版本库 将文件提交到 git索引: git add file1 file2 file3 …… 更方便的作法是

  • 1. 引入sdk 下载wechat-mudu.min.js到小程序项目,建议放utils目录下 const Mudu = require('./utils/wechat-mudu.min') 2. 设置小程序code获取session_key地址 本方法已废弃 sdk会在初始化的时候获取用户的微信资料并设置到目睹平台,所以需要设置该地址用户获取用户openid, 详见用户 Mudu.setOp

  • 1. 引入sdk文件 // 播放器依赖于Promise,兼容ie及其它低版本浏览器的用户需添加polyfill, 如下: <script src="//static.mudu.tv/es6-promise/es6-promise.auto.min.js"></script> // 以下为必须添加项 <script>window.FETCHER_SERVER_URL = "ws://fetcher

  • 初始化 使用 Mobile SDK 之前必须要先初始化SDK,否则无法正常使用 Mobile SDK。 注意: 在工程的Application类的onCreate()方法中初始化RokidMobileSDK。 appKey、appSecret、accessKey 请按照真实填写,否则会初始化失败。 appKey、appSecret、accessKey 请到 https://www.wenjiang