如何在Java中的另一个类中为方法执行外部方法调用?尝试调用的方法是使用Hashmap的方法

时间:2015-12-04 13:00:43

标签: java methods syntax

//这是方法的名称。该方法旨在从存储在程序外部的文本文件中读取信息。该方法包含在名为FileHelper的类中。此类包含各种其他方法,以帮助读取和写入基于程序外的文件的任务。

public HashMap<String, String> readAMap (String filename)  {

    HashMap<String, String> map = new HashMap<>();
    try (BufferedReader reader =
            new BufferedReader(new FileReader(filename))) {
        String word;
        word = reader.readLine();
        while(word != null) {
            String response = reader.readLine();
            if(response != null) {
                response = response.trim();
                if(response.length() != 0) {
                    map.put(word, response);
                }
                else {
                    System.out.println("Blank response for " +
                                       word + " in file " +
                                       filename);
                }
            }
            else {
                System.out.println("Missing response for " +
                                   word + " in file " +
                                   filename);
            }
            word = reader.readLine();
        }
    }
    catch(IOException e) {
        System.out.println("Problem reading file: " + filename +
                           " in readAMap");
    }
    return map;
}

//这是我用来调用上面方法的方法,这个方法是另一个类。

private void fileResponseMap()
{
   FileResponseMap = FileHelper.HashMap<String, String>readAMap(JavaFile);
   return FileResponseMap;
 }
} 

//我想尝试

3 个答案:

答案 0 :(得分:2)

您的方法readAMap不是静态的,因此无法以fileResponseMap中的方式访问它。

您可以将其声明为静态:

public static HashMap<String, String> readAMap (String filename) {
...

或者在调用方法中,您创建了FileHelper的实例并在其上调用实例方法:

private HashMap<String, String> fileResponseMap()
{
   FileHelper fileHelper = new FileHelper();
   return fileHelper.readAMap(JavaFile);

}

返回HashMap时,还必须定义返回类型。

答案 1 :(得分:1)

  • 提供提供readMap方法的课程。
  • 在实例
  • 上调用方法
class Foo {
   public HashMap<String, String> readAMap(String filename) {
      // ...
   }
}

private HashMap<String, String> fileResponseMap() {
   Foo foo = new Foo();

   String javaFile = "my-java-file.txt";
   HashMap<String, String> map = foo.readAMap(javaFile);

   return map;
}

答案 2 :(得分:0)

如果你想从这里调用你的方法应该这样做: 在所有事情出现之前,你的班级是:他的名字是FileResponseMap,如:

 FileResponseMap ycn = new FileResponseMap();

并按照以下方式调用您的方法:

 `ycn.readAMap ("JavaFile");`.

您使用return HashMap<String, String>调用方法。

private HashMap<String, String> fileResponseMap()
     {
        FileResponseMap ycn = new FileResponseMap();
         HashMap<String, String> hmfile =  ycn.readAMap("JavaFile");

     return hmfile ;
    }
}