//这是方法的名称。该方法旨在从存储在程序外部的文本文件中读取信息。该方法包含在名为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;
}
}
//我想尝试
答案 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 ;
}
}