我有一个类字典。它只是读取一个包含一些单词的文本文件(从 main 方法)并将它们存储在一个哈希集中。该类还有一个方法“contains”(静态),它检查 Hashset 是否包含给定的单词并返回一个布尔值。Hashset 变量也被定义为静态的。
现在,如果我有另一个程序并且我调用静态方法“包含”,那么 Dictionary 类的“main”方法是否运行?在我的程序中,它似乎没有运行,因为 Dictionary 是空的(所有对 contains 方法的调用都返回 false)。如何确保运行 main 方法并填写字典?
当然,我可以使方法非静态并创建一个字典对象,或者在我的调用程序中创建字典作为内部类。但只是想知道是否有更好的方法来做到这一点。
如果需要,我会分享代码。
PS:字典类在独立运行时运行良好,并且对“包含”方法的调用也可以正常运行。
private static Set<String> dictionary = new HashSet<String>();
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
System.out.println("Reading dictionary....");
FileReader fr = new FileReader("dictionary.txt");
BufferedReader br = new BufferedReader(fr);
String s;
while((s = br.readLine()) != null){
dictionary.add(s);
}
br.close();
fr.close();
}catch(IOException ioe){
ioe.printStackTrace();
}
System.out.println("Dictionary contains the following words");
for(String s : dictionary){
System.out.println(s);
}
}
public static boolean contains(String inpword){
//String[] args = new String[0];
//main(args);
if(dictionary.contains(inpword))
return true;
return false;
}