switch문에서 클래스 이름과 같은 스트링 변수가 아니라 클래스 자체를 사용하려면 다음과 같이 진행해 보세요. case 문에서 해당 타입을 명시하고 변수를 사용하는 방법입니다.
switch (parameter)
{
case ClassName classInstance:
// ClassName 타입인 경우 실행될 코드
break;
case AnotherClass anotherInstance:
// AnotherClass 타입인 경우 실행될 코드
break;
default:
// 기본 실행 코드
break;
}
여기서 parameter가 ClassName 타입이면 classInstance라는 이름으로 객체가 생성되고, 이 객체에 대해 추가적인 작업을 할 수 있습니다.
이 방식으로 타입을 직접 비교하여 클래스 인스턴스의 타입에 따라 분기 처리가 가능합니다~
스트링으로 설정하였을 때, 네임 등이 변경되는 경우, 해당 참조까지는 바뀌지가 않기에 간혹 스위치가 엉뚱하게 분기되는 현상을 막을 수 있어요~
