2012-03-19 2 views
1

저는 Java를 사용하는 OOP에서 상당히 초보자입니다. 나는이 커뮤니티의 도움으로 많은 것을 배우고 있습니다.반복되는 작업을 반복해서 초기화하는 모범 사례는 무엇입니까

나는 엑셀 시트를 반복해서 읽고 거기에서 데이터를 추출하는 작업을 반복하기 위해 하나의 객체를 사용하는 프로그램을 만들었다.

나는이 작업을 반복해서 초기화하기 위해 모범 사례가 무엇인지 알고 싶습니다. 그래서 배열 및 기타 변수 오류에 대한 경계 밖의 인덱스를 얻을 수 없습니까?

여기 GUI를 새로 고치기 위해 사용하는 스레드 코드가 있습니다 (그리고 파일에서 반복해서 읽음). 보시다시피 다른 클래스의 메서드를 호출하고 있습니다.

public void check() { 
     Thread check = new Thread() { 
      public void run() { 
       for (;;) { 
        EventQueue.invokeLater(new Runnable() { 
         public void run() { 
          // Update GUI here on EventQueue. 

          try { 
           Task.readTasks(); 
          } catch (InvalidFormatException e) { 
           // TODO Auto-generated catch block 
           e.printStackTrace(); 
          } catch (IOException e) { 
           // TODO Auto-generated catch block 
           e.printStackTrace(); 
          } 
         label.setText("Next Task Is: " + Task.printNextTask); 
         } 
        }); 

        try { 
         Thread.sleep(5000); 
        } catch (InterruptedException ie) { 
         break; 
        } 
        if (killcheck) 
         break; 

       } 
      } 
     }; 
     check.start(); 
    } 

    public void stopChecking() { 
     killcheck = true; 
    } 
} 
+1

샘플 코드가 있습니까? – rob

+0

나는 그것이 더 명확해질 것이라는 희망을 약간의 코드에 추가했다. – Yosi199

답변

1

귀하의 질문은 매우 일반적인, 그래서 내 대답도 꽤 제네릭 두려워 : -이 메소드가 호출 될 때 로컬 변수와 배열은 이미 이전 반복에서 일부 데이터를 보유하는 인덱스. ArrayIndexOutOfBoundsExceptions을 피하려면 배열에서 가능한 한 간결한 for-each 구문과 Iterable 개체를 사용하십시오.

작업 대기열에 대한 질문에 this answer이 표시 될 수도 있습니다.

관련 문제