【问题标题】:Java: Cannot find symbol error on Map, HashMapJava:在 Map、HashMap 上找不到符号错误
【发布时间】:2011-10-23 01:15:36
【问题描述】:

我正在尝试运行此代码:

import java.util.*;

public class ScanReg {
  public Map<Integer, ArrayList<Long>> scanMap = new HashMap<Integer, ArrayList<Long>>();
}

在这个类中:

import java.util.*;

public class NxtStart {
  ScanReg sr = new ScanReg();
}

这一直给我以下错误:

.\ScanReg.java:6: error: cannot find symbol
        public Map<Integer, ArrayList<Long>> scanMap = new HashMap<Integer, Arra
yList<Long>>();
               ^
  symbol:   class Map
  location: class ScanReg
.\ScanReg.java:6: error: cannot find symbol
        public Map<Integer, ArrayList<Long>> scanMap = new HashMap<Integer, Arra
yList<Long>>();
                                                           ^
  symbol:   class HashMap
  location: class ScanReg
2 errors

谁能告诉我为什么?

【问题讨论】:

  • 您没有自己的名为java.util 的本地包吗?我会尝试导入整个类名:import java.util.Map;,对于使用的其他 util 类(例如 HashMap)也是如此。
  • Kal 可能正在做某事(对他来说是 1+!)。
  • 我无法根据问题中的信息重新创建它。其他事情正在发生。而且由于 OP 很可能不再关心,因此应该将其关闭为“不可重现”。

标签: java missing-symbols


【解决方案1】:

您可能正在使用 Java 1.4 和泛型进行编译(仅从 1.5 开始可用)。

【讨论】:

  • 对不起.. 我无法重现该问题。我复制了你的 ScanReg.java,它编译得很好。
【解决方案2】:

你需要将你的内部类声明为static

public static class ScanReg {}

否则,放入不同的java文件并导入ScanReg。

【讨论】:

  • 这不会解决他试图解决的问题。这是关于库类和导入的。另外,请注意这是一个古代问题。如果OP现在还没有解决问题,他将不再关心。
  • 我重新创建了问题并测试这是可行的解决方案
  • 好吧,我>无法
猜你喜欢
  • 2014-03-10
  • 2013-05-20
  • 2013-12-06
  • 2016-07-22
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多