【问题标题】:HashMap for noobs - compilator "cannot find symbol - method get(java.lang.string)" [duplicate]新手的HashMap - 编译器“找不到符号 - 方法get(java.lang.string)” [重复]
【发布时间】:2010-02-14 21:58:47
【问题描述】:

我自己找不到解决方案。请给我小费什么的

import java.util.*;


       import java.io.*;

        class Fulgleinfluens {
        public static void main(String[] args) {

        HashMap <String, Komm> Komm = new hashMap<String, Komm>();

        int teller = 0;

         try {
         Scanner FilKom = new Scanner(new File("KommuneKoordinater.txt"));

         while(FilKom.hasNextLine()) {
      String linje = FilKom.nextLine();
      String [] dellinje = linje.split(",");
      String kommune = dellinje[0];
      String fylke = dellinje[1];
      String lengdegrad = dellinje[2];
      String breddegrad = dellinje[3];

      Komm enKom = new Komm(kommune, fylke, lengdegrad, breddegrad);
      Komm.put(kommune, enKom);
      teller++;

         }
     } catch (Exception e) {
         System.out.println("En feil oppsto ved lesing av fil");
     }
     System.out.println("Lest "+teller+" antall linjer");
        }

        void getKommuneMap () {
     String kommune = "Sarpsborg";
     Komm enKom = (Komm) Komm.get(kommune);
        }
        }

        class Komm {
        String kommune;
        String fylke;
        String lengdegrad;
        String breddegrad;

        Komm(String kommune, String fylke, String lengdegrad, String breddegrad) {
             this.kommune = kommune;
             this.fylke = fylke;
             this.lengdegrad = lengdegrad;
             this.breddegrad = breddegrad;
        }
        }

【问题讨论】:

  • 这不是您的代码。它充满了拼写错误,例如 HashMap 的 hashMap。我不知道您在代码中的哪个位置收到了主题中的错误。
  • 太晚了——我看了看就变成了石头。也许编辑可以从这种命运中拯救下一个可怜的灵魂。

标签: java hashmap


【解决方案1】:

您不能将地图实例命名为与 Komm 类的名称相同的名称。改成komm应该没问题。现在您正尝试在 Komm 而不是 HashMap.get() 上调用静态方法。

【讨论】:

  • komm 对于任何不是Komm 实例的东西来说都是一个糟糕的名字。也许称它为kommMap 或其他名称。我不知道 Komm 是什么意思,所以我不确定你想在这里做什么。但我真的不认为一个变量应该命名为komm,如果它不是指Komm
  • 感谢您的快速回复!我是编程(java)和学习的新手,感谢所有的答案。将HashMap名称改为komm时,编译器在Komm中找不到变量komm enKom = (Komm) komm.get(kommune);
  • @MatrixFrog - 你说得对,我对这些类型感到困惑。 kommMap 是更好的选择。
  • @cbeberge - 你是怎么改名字的?请发布您的更新代码。
【解决方案2】:

您的导入是否正确?试试看:

import java.util.*;  // or java.util.HashMap 
import java.io.*;

我看到导入已更正。但是你的代码搞砸了。你的Komm 变量被定义了很多次。

【讨论】:

    【解决方案3】:

    您正在尝试调用Komm.get(),这仅在get() 被定义为Komm 类中的静态方法时才有效。据我所知,不是。

    【讨论】:

      猜你喜欢
      • 2016-05-24
      • 2013-01-03
      • 1970-01-01
      • 1970-01-01
      • 2015-07-10
      • 1970-01-01
      • 2023-03-30
      • 2013-03-08
      • 2014-03-10
      相关资源
      最近更新 更多