작업 표를 만들고 내용을 조작하려고합니다. 나는 이해하지 못하는 버그로 달려 들고 있으며, 도움에 대해 매우 감사해야한다. 나는 질문의 길이에 대해 애도하지만, 가능한 한 많은 세부 사항을 가져 오려고 노력하고있다.새 레코드가 추가 될 때 ArrayList 레코드가 잘못 업데이트되었습니다.
클래스 tasksRepository 저장 목록으로 배열 클래스 taskDef으로 구성되는 기록. setTask() 및 getTask 메서드에는 ArrayList 클래스의 add() 및 get() 메서드가 들어 있습니다.
taskDef 개체의 매개 변수는 로컬 설정 메서드를 사용하여 만듭니다. 다음은 그러한 메소드에 대한 예제입니다. 전달 된 매개 변수가 저장된 값과 다른 경우, 저장된 값과 이벤트가 로그 레코드에 추가됩니다. 어떤 경우 든 성공 플래그가 다시 리턴됩니다.
public static Boolean setProjectNumber(String projectNumberI)
{ // All the
if (projectNumberI != projectNumber)
{
projectNumber = projectNumberI;
logAccumulator = logAccumulator + "; project number (" + projectNumberI + ")";
}
return true;
}
private static void setLog()
{ // When all the parameters are set, the log parameter is updated with time tag
String t = formatterFull.format(GregorianCalendar.getInstance().getTime());
log = log + "\n" + t + ": " + logAccumulator;
}
클래스 tasksTableProcessing는 작업 조작이 포함되어 있습니다. 다음은 생성자를 포함합니다. 그것은 더 간단한 형태로 시작되었지만 수사 중에 나는 그것을 바 꾸었습니다. taskstatus은 문자열을 반환하는 ENUM입니다. 방법 의 getLog()는 단순히 다음은 로그 인 로그 필드
public tasksTableProcessing()
{ // constructor. Creates the tableRepository object with test records
tasksRepository.clearDb();
taskDef task = null;
task = new taskDef ("P1000", "O1", taskStatus.started(), "1", "false", "false");
tasksRepository.addTask (task);
System.out.println("\nLog 0: \n" + tasksRepository.getTask(0).getLog());
task = null;
task = new taskDef ("P1000", "O1", taskStatus.started(), "2", "false", "true");
tasksRepository.addTask (task);
System.out.println("\nLog 1: \n" + tasksRepository.getTask(1).getLog());
task = null;
task = new taskDef ("P2000", "O2", "closed", "63", "true", "false");
tasksRepository.addTask (task);
System.out.println("\nLog 2: \n" + tasksRepository.getTask(2).getLog());
task = null;
task = new taskDef ("P2000", "O2", "closed", "64", "true", "true");
tasksRepository.addTask (task);
System.out.println("\nLog 3: \n" + tasksRepository.getTask(3).getLog());
}
에게 반환합니다. 새 레코드가 도입되면 모든 이전 레코드가 업데이트됨을 보여줍니다.
로그 0
2012년 9월 7일 10시 21분
:; 프로젝트 번호 (P1000); 작업 (작업 1); 작업 ID (1); 소유자 (O1); 상태 (시작)로그인 1 :
2012년 9월 7일 10시 21분 :; 프로젝트 번호 (P1000); 작업 (작업 1); 작업 ID (1); 소유자 (O1); 상태 (시작됨)
09/07/2012 10:21 :; 프로젝트 번호 (P1000); 작업 (작업 1); 작업 ID (1); 소유자 (O1); 상태 (시작됨); 작업 (작업 2); 작업 ID (2); (참) 배달 플래그
로그인 2 :
2012년 9월 7일 10시 21분 :; 프로젝트 번호 (P1000); 작업 (작업 1); 작업 ID (1); 소유자 (O1); 상태 (시작됨)
09/07/2012 10:21 :; 프로젝트 번호 (P1000); 작업 (작업 1); 작업 ID (1); 소유자 (O1); 상태 (시작됨); 작업 (작업 2); 작업 ID (2); 배달 플래그 (참)
09/07/2012 10:21 :; 프로젝트 번호 (P1000); 작업 (작업 1); 작업 ID (1); 소유자 (O1); 상태 (시작됨); 작업 (작업 2); 작업 ID (2); 배달 플래그 (true); 프로젝트 번호 (P2000); 태스크 (태스크 63); 작업 ID (63); 소유자 (O2); 상태 (닫힘); 임계 경로 (true); (false)를 전달 플래그
로그 3
2012년 9월 7일 10시 21분 :; 프로젝트 번호 (P1000); 작업 (작업 1); 작업 ID (1); 소유자 (O1); 상태 (시작됨)
09/07/2012 10:21 :; 프로젝트 번호 (P1000); 작업 (작업 1); 작업 ID (1); 소유자 (O1); 상태 (시작됨); 작업 (작업 2); 작업 ID (2); 배달 플래그 (참)
09/07/2012 10:21 :; 프로젝트 번호 (P1000); 작업 (작업 1); 작업 ID (1); 소유자 (O1); 상태 (시작됨); 작업 (작업 2); 작업 ID (2); 배달 플래그 (true); 프로젝트 번호 (P2000); 태스크 (태스크 63); 작업 ID (63); 소유자 (O2); 상태 (닫힘); 임계 경로 (true); 배달 플래그 (거짓)
09/07/2012 10:21 :; 프로젝트 번호 (P1000); 작업 (작업 1); 작업 ID (1); 소유자 (O1); 상태 (시작됨); 작업 (작업 2); 작업 ID (2); 배달 플래그 (true); 프로젝트 번호 (P2000); 태스크 (태스크 63); 작업 ID (63); 소유자 (O2); 상태 (닫힘); 임계 경로 (true); 배달 플래그 (false); 태스크 (태스크 64); 작업 ID (64); (참) 배달 플래그 메소드 서명을 감안할 때
멋진 배경이지만 어디에 문제가 있는지 잘 모르겠습니다. – shem
taskDef의 생성자 및 tasksRepository.addTask (task)의 정의 코드를 표시 할 수 있습니까? – Sabbath