JAVA | 깔끔한 느낌의 새로운 Switch

5640 단어 switchJavaJava

몇 달 전에 Mkyong님의 블로그를 보고 Java Switch 문에 변화가 생겼다는 걸(오래된 일이지만) 알게 되었다. C, C++ 개발을 할 때 if 문을 더 선호하던 편이라 Java 로 개발언어를 바꾼뒤에도 if 문 체인을 사용하거나, 성능이 중요한 경우에는 Map을 사용해 조건 처리를 하는 경우가 많았다. 몇 일전에 Map 으로만 처리하던 코드를 if 문으로 구현하려고 하니 뭔가 주렁주렁 체인이 생기는 것 같아 새로운 Switch 문을 사용해 보았다. 코드가 훨씬 깔끔해진 느낌이다.

  • if 문 체인에 비해 Boilerplate Code 가 적다.
  • 그래서 코드가 짧아진다.
  • 의미가 좀더 직관적으로 보인다.
  • 동일한 행동을 하는 여러개의 조건을 함께 처리하기 편하다.

Switch - case

    RxMessage message = switch (id) {
        case "L" -> new ToggleStatus(id, content);
        case "M" -> new Alarm(id, content);
        case "P", "K" -> new Parameters(id, content);
        default -> assert false; 
    };

If - else

    RxMessage message;

    if (id.equals("L")) {
    	message = new ToggleStatus(id, content);
    } else if (id.equals("M")) {
    	message = new Alarm(id, content);
    } else if (id.equals("P") || id.equals("K")) {
    	message = new Parameters(id, content);
    } else {
    	assert false; 
    }

참고

좋은 웹페이지 즐겨찾기