나는 클래스 사전을 가지고있다. 그냥 몇 가지 단어가 들어있는 텍스트 파일 (main 메서드에서)을 읽고 해시 집합에 저장합니다. 또한 클래스에는 Hashset에 주어진 단어가 포함되어 있는지 검사하고 부울을 반환하는 "contains"(정적) 메서드가 있습니다. Hashset 변수는 정적 변수로 정의됩니다.클래스 B에서 클래스 A의 정적 메서드를 호출 할 때 클래스 A의 기본 메서드가 실행됩니까?
이제 다른 프로그램이 있고 정적 메서드 "contains"를 호출하면 Dictionary 클래스의 "main"메서드가 실행됩니까? 내 프로그램에서 Dictionary가 비어있는 것처럼 실행되지 않는 것 같습니다 (contains 메서드에 대한 모든 호출은 false를 반환합니다). main 메소드를 실행하고 사전을 채우려면 어떻게해야합니까?
물론 메소드를 정적이 아니게 만들고 사전 객체를 만들거나 사전을 내 호출 프로그램의 내부 클래스로 만들 수 있습니다. 그러나 이것을하기위한 더 좋은 방법이 있는지 알고 싶습니다.
필요한 경우 코드를 공유합니다.
PS : Dictionary 클래스는 독립적으로 실행될 때 잘 실행되고 "contains"메서드 호출은 잘 작동합니다.
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;
}
프로그래밍 할 언어를 지정해야합니다. – EJP
자바 또는 C#을 사용하고 있습니까? – Bohemian
짧은 코드 샘플이 좋습니다. 약 10 줄 또는 20 줄 정도면 충분합니다. – Arafangion