【问题标题】:Is this possible? : HashMap<String, char>这可能吗? : HashMap<字符串,字符>
【发布时间】:2023-03-25 23:45:02
【问题描述】:

我正在创建一个包含两个板的游戏: http://imgur.com/nrCX5Ux

我想将“A”链接到“.”。两者都是字符串数组。 我想用这个:

indexesOfBoard.put("A", ((morris.START[0].charAt(0))));

然后我收到如下错误:

The method put(String, String) in the type HashMap<String,String> is not applicable for the arguments (String, char)

如果我将 HashMap 更改为 &lt; String, char&gt;,我会得到:

Syntax error on token "char", Dimensions expected after this token

【问题讨论】:

  • 使用Character。您需要使用对象而不是原语
  • 顺便说一句,如果您对错误的含义感兴趣,Map&lt;String, char[]&gt; 是合法的,因此编译器希望添加这些数组括号。

标签: java string char hashmap


【解决方案1】:

类型参数不能是原始类型。改用包装类替代:

HashMap<String, Character>

【讨论】:

    【解决方案2】:

    原始类型不能用作 java 中的泛型类型参数。请改用相应的盒装类型。

    【讨论】:

      【解决方案3】:

      原始类型不允许在类型参数中。它需要容器(对象)而不是原语。你必须使用 Wrapper 对象 Character 而不是原始的 char 类型

      使用:HashMap&lt;String,Character&gt;

      将引用类型声明为 HashMap&lt;String,Character&gt; 后,您可以简单地将 char 原语作为值放入其中。这就是自动装箱出现的地方。即 它将 char 装箱到 Character 对象中 并存储它

      【讨论】:

      • 这不是 HashMap 特有的。
      • 是的,我只是专门回答的。我刚刚更新了它
      【解决方案4】:

      您不能在泛型中使用原始类型。请改用Character。

      【讨论】:

        【解决方案5】:

        泛型类中不允许原始类型,只允许类类型。像这样使用。

        HashMap<String, Character>
        

        【讨论】:

          【解决方案6】:

          错误是因为您使用的是字符(原始类型)。 尝试使用。

          HashMap字符串,字符>。

          【讨论】:

            猜你喜欢
            • 2011-09-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-02-23
            • 2013-01-28
            • 2017-09-03
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多