구현할 목록 클래스를 결정하는 데 사용되는 문자열 변수 type
을 사용하는 메서드를 작성했습니다. 이 메서드는 switch 문을 사용하여 변수 이름 newList
을 사용하여 적절한 유형의 목록을 만듭니다.switch 문 안에 객체를 만드는 데 문제가있는 경우 "객체를 확인할 수 없습니다"(자바)
스위치 문은 다음과 같습니다
switch (type) {
case "unsorted": {
UnsortedList newList = new UnsortedList();
break;
}
case "sorted": {
SortedList newList = new SortedList();
break;
}
case "new sorted": {
NewSortedList newList = new NewSortedList();
break;
}
default: {
System.out.print("Something went wrong! List type unrecognized. I have initialized newList to be an unsorted list.");
UnsortedList newList = new UnsortedList();
}
}
이에 따라, 나는 newList
항상 인해 switch 문의 기본 케이스에 인스턴스화 할 것이라고 믿는다. 그러나 "newList를 (를) 확인할 수 없습니다"라는 오류가 발생합니다.
내가 이것을 막기 위해 할 수있는 일이 있습니까?
'newList'의 범위는 개별'{}'블록입니다. 다른 곳에서는 볼 수 없습니다. –
스위치 내부에 목록을 만들었으므로 외부에서 액세스 할 수 없으므로 범위를 벗어났습니다 – azro
어떻게'newList'를 사용하고 있습니까? 이 클래스들은 공통 인터페이스를 공유합니까? – shmosel