从对象获取信息(JAVA)

从对象获取信息(JAVA),java,methods,parameters,set,hashset,Java,Methods,Parameters,Set,Hashset,所以我必须创建这个对象,DocumentAnalyzer,然后在其他函数中,例如getUniqueWords,我必须能够获取保存在其中的文件的内容,并对内容进行排序。为了得到唯一的单词,我打算使用设置,因为它不能有重复的单词 对象: public DocumentAnalyzer(String filename) throws FileNotFoundException { List<String> records = new ArrayList<String>

所以我必须创建这个对象,DocumentAnalyzer,然后在其他函数中,例如getUniqueWords,我必须能够获取保存在其中的文件的内容,并对内容进行排序。为了得到唯一的单词,我打算使用
设置
,因为它不能有重复的单词

对象:

public DocumentAnalyzer(String filename) throws FileNotFoundException 
{

    List<String> records = new ArrayList<String>();
      try
      {
        BufferedReader reader = new BufferedReader(new FileReader(filename));
        String line;
        while ((line = reader.readLine()) != null)
        {
          records.add(line);
        }
        reader.close();
      }
      catch (Exception e)
      {
        System.err.format("Exception occurred trying to read '%s'.", filename);
        e.printStackTrace();
        return;
      }

      System.out.print(records);
}


public Set<String> getAllWords(?????) 
{

    Set<String> set = new HashSet<>(values);

    for (String value : set)
        System.out.printf("%s", value);

    return set;
}
公共文档分析器(字符串文件名)抛出FileNotFoundException { 列表记录=新的ArrayList(); 尝试 { BufferedReader reader=新的BufferedReader(新文件读取器(文件名)); 弦线; 而((line=reader.readLine())!=null) { 记录。添加(行); } reader.close(); } 捕获(例外e) { System.err.format(“尝试读取'%s',文件名时发生异常”); e、 printStackTrace(); 返回; } 系统输出打印(记录); } 公共集getAllWords(???) { Set=新的HashSet(值); for(字符串值:设置) System.out.printf(“%s”,值); 返回集; }
当我调用函数时,如何使它可以使用DocumentAnalyzer中的信息?我知道这和参数有关,所以我必须投下一些东西吗?我只是忽略了它,它真的很简单吗?
几个小时来我一直在思考这个问题

您发布的代码可能在
声明中,例如:

public class DocumentAnalyzer {
    // your code here
}
当前的问题是
列表记录
是构造函数的局部变量

您需要的是将信息存储为此类的字段(也称为属性),而不是将变量声明保存在构造函数中:

public class DocumentAnalyzer {

    private List<String> records;

    // your code here
}
公共类文档分析器{
私人名单记录;
//你的代码在这里
}
然后,在构造函数中使用该字段而不是局部变量,方法是替换:

List<String> records = new ArrayList<String>();
List records=new ArrayList();
作者:

records=newarraylist();

现在,您的
getAllWords()
方法不需要任何参数,因为您只需要使用
records
,可以从那里访问它。

是的,我将????因为我想这就是我的问题所在!在任何方法外声明记录,然后在getAllWords方法内使用它,您不需要传递任何东西。
records = new ArrayList<String>();