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

Java:实例化Google Collection的HashBiMap

朱典
2023-03-14
问题内容

我正在使用Eclipse,并且已将其添加google-collect.1.0-rc2.jar为参考库。但是,这仍然不起作用:

import com.google.common.collect.HashBiMap;

public class Odp {        
    //...

    HashBiMap<Character, Integer> charOcc =
        HashBiMap<Character, Integer>.create();    
}

Eclipse给出以下错误:

这行有多个标记

  • HashBiMap无法解析
  • Character.Integer无法解析
  • 令牌“,”,“”的语法错误。预期
  • 令牌“。”的语法错误,请删除此令牌
  • 对于类Odp,未定义方法create()

我究竟做错了什么?

其他Google内容(例如Joiner)也可以正常工作。(但是Joiner不是通用的。)


问题答案:

在调用静态泛型函数时,不要传递类型参数:

 HashBiMap<Character, Integer> charOcc = HashBiMap.create();

同样,您实际上不应该对实现类进行编码,因此最好不要这样做

 Map<Character, Integer> charOcc = HashBiMap.create();

要么

 BiMap<Character, Integer> charOcc = HashBiMap.create();


 类似资料:
  • 问题内容: 当用Java实例化一个对象时,真正进入内存的是什么? 是否包含父级构造函数的副本? 投射时,为什么隐藏数据成员的行为与重写方法不同? 我理解为使您正确使用这些东西而通常给出的抽象解释,但是JVM如何真正做到这一点。 问题答案: 实例化对象时,实际上仅“静态”数据以及创建该对象的对象类型的引用被“创建”。 没有方法被复制过。 创建它的类的“引用”实际上是一个指针调度表。该类可用的每个方法

  • 问题内容: 我已经找到了实例化Singleton的三种方法,但是我怀疑其中是否有最好的方法。我在多线程环境中使用它们,并且更喜欢延迟实例化。 范例1: 范例2: 范例3: 我正在使用ATM的项目到处都使用Sample 2,但我还是更喜欢Sample 3。还有Enum版本,但是我不明白。 这里的问题是- 在什么情况下我应该/不应该使用这些变体中的任何一个?我并不是在寻找冗长的解释(对此还有很多其他话

  • 本文向大家介绍Java实例化类详解,包括了Java实例化类详解的使用技巧和注意事项,需要的朋友参考一下 Java 中实例化类的动作,你是否还是一成不变 new 对应对象呢?     经手的项目多了,代码编写量自然会增加,渐渐的会对设计模式产生感觉。     怎样使书写出来的类实例化动作,高内聚,低耦合,又兼具一定的扩展能力呢?     本文试图从几段鲜活的代码入手,给大家呈现不一样的 Java 实

  • 问题内容: 我试图将JVM中的初始化和实例化过程组合在一起,但是JLS在一些细节上有点笨拙,因此,如果有人介意清理一些细节,将不胜感激。到目前为止,这是我能够弄清楚的。 初始化 递归初始化该类及其接口的静态最终变量,这些变量是编译时间常数。 从递归中退出,按文本顺序处理静态块和静态字段。 实例化 递归初始化作为编译时间常数的类的最终实例变量。 按文本顺序退出递归处理非静态块和实例字段,并在返回时将

  • 假设你有一个绘制了很多模型的场景,而大部分的模型包含的是同一组顶点数据,只不过进行的是不同的世界空间变换。想象一个充满草的场景:每根草都是一个包含几个三角形的小模型。你可能会需要绘制很多根草,最终在每帧中你可能会需要渲染上千或者上万根草。因为每一根草仅仅是由几个三角形构成,渲染几乎是瞬间完成的,但上千个渲染函数调用却会极大地影响性能。 如果我们需要渲染大量物体时,代码看起来会像这样: for(un

  • 7.3.2 bean的实例化 bean的定义本质上是创建一个或多个对象的配方。当被请求时,容器在配方中查找指定名称的bean,使用bean定义中封装的配置元数据来创建(或得到)一个实际的对象。 如果使用基于XML的配置元数据,在<bean/>元素的class属性中指定被实例化对象的类型(或类)。class属性通常是强制性的,它在内部实质是BeanDefinition实例的Class属性。(例外情况