【问题标题】:Hash Maps with <Key,Value>带有 <Key,Value> 的哈希映射
【发布时间】:2010-02-26 18:30:18
【问题描述】:

我写:

public interface Map <Key, Value> cells;

eclipse 抱怨说“{ 预期的”。

public interface Map <Key, Value> cells{};

然后我在 eclipse 中写了上面的内容,它抱怨“令牌“单元格”上的语法错误,删除这个令牌”。

我到底该怎么办? Google 不是我的朋友,因为我找不到代码 sn-ps 来计算它的语法。

【问题讨论】:

  • interface 关键字在那里做什么?想要达到什么目的?
  • 如果我不包含“接口”,则 eclipse 会抱怨 Value 和 Key“无法解析为类型”。
  • 那是因为KeyValue 不是类型。在这种情况下,KeyMap 对象将用于其键集的数据类型的占位符。同样,Value 是数据类型的占位符,它将用于其值集。例如,一个有效的组合是Map&lt;String, Integer&gt;
  • 是的,它有效!非常感谢威廉:D

标签: java hashmap


【解决方案1】:

您是否要声明一个名为cells 的成员变量?如果是这样,这样做的方法是:

public class Foo {

   // ...

   public Map<Type1, Type2> cells;

   // ...

}

如果您尝试在方法中声明变量,请执行以下操作:

public class Foo {

    // ...

    public void myMethod() {
        // ...

        Map<Type1, Type2> cells;

        // ...
    }

    // ...
}

编辑:看来你被Map &lt;Key, Value&gt;搞糊涂了,我来解释一下。

KeyMap 对象将用于其键集的数据类型的占位符。同样,Value 是数据类型的占位符,它将用于其值集。例如,一个有效的组合是Map &lt;String, Integer&gt;。这意味着Map 对象会将一组String 对象映射到一组Integer 对象。

【讨论】:

    【解决方案2】:

    你可能是说

    public Map<Key, Value> cells;
    

    interface 关键字用于定义一个接口。在声明实现interfaceclass 时使用implements

    【讨论】:

    • 当,它仍然无法正常工作。错误:“无法将键和值解析为类型。”。
    • 这是另一个错误。 Key 和 Value 必须是 Java 类。一个工作样本是public Map&lt;String, Integer&gt; cells;。我虽然你只是使用 Key 和 Value 作为占位符。
    • @Randle:看看上面 William Brendel 的评论。您需要将“Key”和“Value”替换为您的实际键和值类型。
    【解决方案3】:

    你想做什么?定义一个新类型还是定义一个 Map 类型的成员?

    如果要定义成员,则不需要在其前面使用 interface 关键字。 如果您要定义新类型,则只需要接口。

    【讨论】:

      【解决方案4】:

      你想要:

      public Map<Key,Value> cells;
      

      创建一个名为 Map 类型的单元格的变量。

      public interface Map<Key,Value> cells;
      

      正在(错误地)声明一个名为 Map 的用户定义接口 - 可能不是您想要做的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-19
        • 2018-10-13
        • 1970-01-01
        • 2013-07-02
        相关资源
        最近更新 更多