[자바] 문법 문의 드려요


private static Logger logger = Logger.getLogger(CopyUtil.class); 이런 코드를 보았는데요 혹시 문법적으로 이해 안가는 부분이 있어서 문의드립니다.

'CopyUtil.class' 이런식으로 xxx.class를 인자를 던진다는게 class 파일을 인자로 전달하는게 맞나요 문법적으로 어떻게 이해하면 되는지 궁금합니다.

문법적으로 설명 해주시면 감사하겟습니다.

  • 2017년 01월 06일에 작성됨
    모바일기술PM

조회수 71


1 답변


자바의 Reflection API를 제공합니다. Reflection은 자기 자신의 코드를 조회할 수 있는 방법을 제공하는 것이라고 생각하면됩니다. 클래스안에 메서드가 어떤 것이 있는지, 함수는 어떤 인자로 되어있는지를 프로그래밍 API를 통해서 모두 접근이 가능합니다.

그래서 자바에서는 Class도 하나의 타입입니다.

CopyUtil.class 는 Class의 인스턴스가 됩니다.

첨언.

자바에서 Logger 이름을 쓸 때, 많이 사용하는 이름이 해당하는 클래스이름을 사용하는 것이 관례입니다. 따라서 클래스 이름(패키지명 포함)을 Logger 이름으로 사용하는 것이 좋은 것입니다.

위의 로거 팩토리 패턴에서 XXX.class를 넘기면 내부적으로 Class의 Reflection API를 이용해서 자동으로 Logger이름을 추출하는 행위를 하게 됩니다.

  • 2017년 01월 06일에 작성됨
    리눅스(유닉스) 기반의 시스템에서 웹 서비스를 개발하고 있습니다.

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close