以下のコードでは、関数内でブール値modifyPersonに対して行われた変更は維持されますか、それとも新しい関数が呼び出されるたびに初期値に変更されますか。
また、ブール値の代わりにプリミティブブール値のmodifyPersonを使用した場合、どのような違いがあるのか知りたいです。
public void validatePersonDTO(PersonDTO personDTO, TransactionLogDTO logDTO,ArrayList regionIdList,Boolean modifyPerson) {
try {
validateEffectiveIn(personDTO, logDTO,modifyPerson);
validateCdsId(personDTO, logDTO,regionIdList,modifyPerson);
validateEmpFirstName(personDTO, logDTO);
validateEmpLastName(personDTO, logDTO);
validateFinDept(personDTO, logDTO,modifyPerson);
validateEmployeeClass(personDTO, logDTO,modifyPerson);
validateWorkLoadandBudgetFTE(personDTO, logDTO,modifyPerson);
validateStatusandDescription(personDTO, logDTO,modifyPerson);
validateSalGrade(personDTO, logDTO);
validateCostRate(personDTO, logDTO);
validateJobCode(personDTO, logDTO,modifyPerson);
validateRateCardCharged(personDTO, logDTO);
validateSupervisorId(personDTO, logDTO);
}catch (Exception e) {
logDTO.setGyr("R");
logDTO.setMessage(logDTO.getMessage()+";"+"PersonDTO could not be validated");
//LOGGER.error("personDTO could not be validated: " + personDTO, e);
}
}
protected void validateEffectiveIn(PersonDTO personDTO, TransactionLogDTO logDTO,boolean modifyPerson) throws Exception{
todaysDate=convStringToDate(now(),Constants.DATE_PATTERN_LONG);
if(effIn.after(todaysDate)){
modifyPerson=true;
logDTO.setGyr("R");
logDTO.setMessage(logDTO.getMessage()+";"+"Error in Effective In date "+effIn.toString()+"cannot be greater than today’s date");
throw new Exception ("Error in Effective In date "+effIn.toString()+"cannot be greater than today’s date");
}
else{
modifyPerson=false;
}
}