수강생 등록 관련 코드 작성 하는 도중
java.lang.UnsupportedOperationException 발생.
private static void createStudent() {
int count = 1;
int input;
System.out.println("\n수강생을 등록합니다...");
System.out.print("수강생 이름 입력: ");
String studentName = sc.next();
// 기능 구현 (필수 과목, 선택 과목)
String[] mandatory =new String[3];
String[] choice =new String[2];
Student student = new Student(sequence(INDEX_TYPE_STUDENT), studentName);
String studentId = student.getStudentId();
for (int i = 0 ; i < mandatory.length ; i++) {
System.out.println("==================================");
System.out.println("필수 과목 3과목을 입력해 주세요..."+count +" 번째");
System.out.println("1. Java");
System.out.println("2. 객체지향");
System.out.println("3. Spring");
System.out.println("4. JPA");
System.out.println("5. MySQL");
input = sc.nextInt();
switch (input) {
case 1 :
mandatory[i] = "Java";
subject = new Subject(sequence(INDEX_TYPE_SUBJECT), mandatory[i],SUBJECT_TYPE_MANDATORY,studentId);
subjectStore.add(subject);
break;
case 2 :
mandatory[i] = "객체지향";
subject = new Subject(sequence(INDEX_TYPE_SUBJECT), mandatory[i],SUBJECT_TYPE_MANDATORY,studentId);
subjectStore.add(subject);
break;
case 3 :
mandatory[i] = "Spring";
subject = new Subject(sequence(INDEX_TYPE_SUBJECT), mandatory[i],SUBJECT_TYPE_MANDATORY,studentId);
subjectStore.add(subject);
break;
case 4 :
mandatory[i] = "JPA";
subject = new Subject(sequence(INDEX_TYPE_SUBJECT), mandatory[i],SUBJECT_TYPE_MANDATORY,studentId);
subjectStore.add(subject);
break;
case 5 :
mandatory[i] = "MySQL";
subject = new Subject(sequence(INDEX_TYPE_SUBJECT), mandatory[i],SUBJECT_TYPE_MANDATORY,studentId);
subjectStore.add(subject);
break;
default:
System.out.println("잘못 입력하셨습니다");
break;
}
count++;
}
count = 1;
for (int i = 0 ; i < choice.length ; i++) {
System.out.println("==================================");
System.out.println("선택 과목 2과목을 입력해 주세요..." + count + " 번째");
System.out.println("1. 디자인 패턴");
System.out.println("2. Spring Security");
System.out.println("3. Redis");
System.out.println("4. MongoDB");
input = sc.nextInt();
switch (input) {
case 1:
choice[i] = "디자인 패턴";
subject = new Subject(sequence(INDEX_TYPE_SUBJECT), choice[i],SUBJECT_TYPE_CHOICE,studentId);
subjectStore.add(subject);
break;
case 2:
choice[i] = "Spring Security";
subject = new Subject(sequence(INDEX_TYPE_SUBJECT), choice[i],SUBJECT_TYPE_CHOICE,studentId);
subjectStore.add(subject);
break;
case 3:
choice[i] = "Redis";
subject = new Subject(sequence(INDEX_TYPE_SUBJECT), choice[i],SUBJECT_TYPE_CHOICE,studentId);
subjectStore.add(subject);
break;
case 4:
choice[i] = "MongoDB";
subject = new Subject(sequence(INDEX_TYPE_SUBJECT), choice[i],SUBJECT_TYPE_CHOICE,studentId);
subjectStore.add(subject);
break;
default:
System.out.println("잘못 입력하셨습니다");
break;
}
count++;
}
studentStore.add(student);
System.out.println(student.getStudentName()+","+student.getStudentId());
for(Subject s : subjectStore){
System.out.println(s.getSubjectName()+','+s.getSubjectId()+','+s.getSubjectType());
}
System.out.println("수강생 등록 성공!\n");
}

해당 Exception 번역기로 확인 해보니깐. 지원하지 않는 작업 예외라고 한다.

어떤 부분에서 지원하지 않는 작업인지 몰라 튜터님에게 자문을 구해봤는데
List에서 List.Of를 선언하면 add를 지원하지 않는다고 한다.
private static void setInitData() {
studentStore = new ArrayList<>();
subjectStore = List.of(
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"Java",
SUBJECT_TYPE_MANDATORY,
INDEX_TYPE_STUDENT
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"객체지향",
SUBJECT_TYPE_MANDATORY,
INDEX_TYPE_STUDENT
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"Spring",
SUBJECT_TYPE_MANDATORY,
INDEX_TYPE_STUDENT
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"JPA",
SUBJECT_TYPE_MANDATORY,
INDEX_TYPE_STUDENT
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"MySQL",
SUBJECT_TYPE_MANDATORY,
INDEX_TYPE_STUDENT
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"디자인 패턴",
SUBJECT_TYPE_CHOICE,
INDEX_TYPE_STUDENT
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"Spring Security",
SUBJECT_TYPE_CHOICE,
INDEX_TYPE_STUDENT
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"Redis",
SUBJECT_TYPE_CHOICE,
INDEX_TYPE_STUDENT
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"MongoDB",
SUBJECT_TYPE_CHOICE,
INDEX_TYPE_STUDENT
));
scoreStore = new ArrayList<>();
}
해당 문제를 해결 할려면 해당 구문을 지우거나 new ArrayList<>()로 생성하면 해결 된다.
참고 문헌 : https://yeonyeon.tistory.com/161