代码之家  ›  专栏  ›  技术社区  ›  Adam Outler

NEB问题:在Java中传递对象?

  •  2
  • Adam Outler  · 技术社区  · 15 年前

    我是爪哇人。我正在做以下工作:

    从文件中读取,然后将数据放入变量中。

    我已将checktoken和linetoken声明为类下的公共字符串。

        public static void readFile(String fromFile) throws IOException {
        BufferedReader reader = new BufferedReader(new FileReader(fromFile));
              String line = null;
              while ((line=reader.readLine()) != null )  {
              if (line.length() >= 2) { 
                   StringTokenizer lineToken = new StringTokenizer (line);
                   checkToken = lineToken.nextToken();
                   processlinetoken()
                   ......
    

    但这就是我遇到问题的地方。

         public static void processlinetoken()
              checkToken=lineToken.nextToken();
         }
    

    它失败了。

    Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
     The method nextToken() is undefined for the type String
    
     at testread.getEngineLoad(testread.java:243)
     at testread.readFile(testread.java:149)
     at testread.main(testread.java:119)
    

    那么,我该如何让它发挥作用呢?它似乎传递变量,但后面没有。作品。

    Eclipse IDE没有太多帮助“链接本地重命名的所有引用(不更改 其他文件中的引用)“在文件中重命名”是唯一的选项。它什么都不做。

    3 回复  |  直到 15 年前
        1
  •  2
  •   Jack    15 年前

    只是看起来 lineToken 是一个 String 取而代之的是 StringTokenizer . 可能你已经宣布了 String lineToken 作为类的一个属性,您计划在 readFile 分配给的方法 利奈托肯 new StringTokenizer() 但是你的定义是局部的,而不是你正在做的。

    你应该试着移除 串化器

    StringTokenizer lineToken = new StringTokenizer (line);
    

    只是做

    lineToken = new StringTokenizer(line);
    
        2
  •  0
  •   Kaleb Brasee    15 年前

    你想打电话给我 nextToken() 在testread.java第243行的字符串上。如果您使用的是一个IDE,它应该向您显示问题所在。

        3
  •  0
  •   Adam Outler    15 年前

    谢谢你,杰克。

    我声明了一个公共静态字符串,但在readfile()中声明了一个StringTokenizer。因此,在调用processLineToken()时,它查看的是空字符串变量,而不是在readFile()中声明的StringTokenizer。

    我误解了StringTokenizer的用法。它是一种类型,不是扩展名。