2011-12-08 1 views
0

이것은 내가 수행 한 학교 과제입니다. 나는 내 가정교사와왔다 갔다했는데 그는 이것으로 나를 돕고있다. 그러나 내가 분명히 여기에서 빠진 것이있다. 문제의 프로그램은 "파일 이름 .txt -f"인수를 받아 그 파일 이름을 수행하는 프로그램이 다음 그 이름을 받아 반사를 사용하여 클래스를 생성하고이사용자 지정 예외가 발생한 후에 스레드를 일시 중단하려고 시도했습니다.

FansOn, 2000 
FansOff, 4000 
Bell, 2000,5 

같은 것들의 목록은 (동작을 호출) 메소드 (FansOn 등)를 생성합니다. 그것은 각 클래스에 대한 스레드를 생성 한 다음 "Fan is on"과 같은 메시지를 생성하는 스레드를 시작합니다. PowerOut 및 WindowMalfunction 이벤트 중 두 가지에서 ControllerException이 발생하고 GreenhouseControls이라는 객체를 잡고 나중에 검사 할 수 있도록 dump.out이라는 파일로 직렬화해야합니다. 문제는 내 ghcSuspend() 메서드를 호출하여 예외 호출 직후 모든 이벤트를 일시 중단해야한다는 것입니다. 사실,이 시점에서 내 프로그램은 방대한 스택 오버 플로우 문제를 발생시킵니다. 나는 분명히 내 전체 코드를 게시해야할지 모르겠다. 왜냐하면 분명히 누군가 다른 사람이 내 코스를 수강하여 코드 대량을받는 것을 원하지 않기 때문이다. 그래서 내가 너희들이 내 이슈를 이해하도록하기 위해 내가 무엇을 게시해야하는지 모르겠다. .

main() 방법에서 나는 GreenhouseControls라는 gc라는 개체를 만듭니다. GreenhouseControls는 메인 클래스 파일의 이름입니다. 궁극적으로 내 이벤트에서 정의되고 잡힌 내 사용자 정의 예외에서이 gc 객체가 필요합니다.

+0

?????????????? –

+0

전체 코드를 게시하지 않고 더 잘 설명하는 방법을 알고 싶습니다. 실제로 GreenhouseControls.java를 google하면 인터넷에서 문제의 일부 변형을 발견하게됩니다. 그 중 하나는 실제로이 과제 이전의 과제와 동일합니다 (기본적으로 동일한 문제이지만 스레드와 반사 없음). –

답변

0

이 항목을 알아 낸 것입니다. 내 객체가 run 메소드에서 작성되었으므로 기본적으로 처리 할 필요가있는 최종 메소드에 도달 할 때까지 순차적으로 호출 된 각 메소드를 전달해야했습니다. 무한 루프를 만들어 내 스택을 범람하는 몇 가지 기본 OO 개념을 놓치고있었습니다. 이제 우린 모두 좋다.

관련 문제