Skip to content

camp.nextstep.edu.missionutils.Console 의 메서드를 알아보자

her0807 edited this page Nov 27, 2021 · 3 revisions

camp.nextstep.edu.missionutils.Console? 뭐지?

우테코 미션을 진행하며 아래와 같은 요구사항이 있었다.

  • 사용자가 입력하는 값은 camp.nextstep.edu.missionutils.Console의 readLine()을 활용한다.

패키지명을 보니 이것 또한 포비 대장님이 계신 nextstep 에서 만든 것 같았다.

메서드 내부를 살펴보자!

목록

  • readLine
  • getInstance
  • isClosed

readLine

getInstance 메서드로 Scanner 객체가 없으면 만들어서 nextLine() 문자열(한줄)을 받고, 받은 문자열을 리턴한다.


getInstance

isClosed를 사용해서 Scanner 객체 여부를 반환받고, 없으면 만들어서 반환하고, 있으면 있는 Scanner 객체를 반환한다.

isClosed

Scanner 객체 여부를 반환한다.

final Field sourceClosedField = Scanner.class.getDeclaredField("sourceClosed"); // Scanner 에 접근하기 위한 작업
 sourceClosedField.setAccessible(true);// Scanner 값에 접근하기 위한 권한 부여
return sourceClosedField.getBoolean(scanner); // // Scanner 객체가 있는지?

느낀점

기존에 유사한 API 가 있는데 새로 만드신 이유가 궁금하다! Scanner 내부도 살펴봐야겠다.

참고