Tom's Note
Published 2023. 7. 31. 11:13
Class 객체 프로그래밍 언어/자바
반응형
  • 클래스와 인터페이스를 메모리에 로드하고 조작하는데 사용되는 메타데이터를 포함하는 객체
  • Class 객체를 통해 클래스의 정보를 동적으로 가져올 수 있음( 리플렉션 )
  • 리플렉션을 통해 클래스 구조, 필드 확인, 인스턴스 생성, 메소드 호출, 필드 설정 등 가능

주요 용도

  1. 클래스 정보 가져오기: 클래스의 이름, 접근 제어자, 상위 클래스, 인터페이스 등의 정보를 동적으로 얻을 수 있음
  2. 인스턴스 생성: Class 객체를 통해 new Instance() 메소드를 호출하여 해당 클래스의 인스턴스를 동적으로 생성 가능
  3. 메소드 호출: Class 객체와 리플렉션을 사용하여 동적으로 메소드를 호출 가능
    getMethod()로 메소드를 얻고, invoke()를 통해 메소드를 호출함
  4. 필드 접근: Class 객체를 사용하여 클래스의 필드를 동적으로 접근하고 값을 설정할 수 있다.
    getFiled()를 통해 필드에 접근하고, get(), set()을 통해 필드 값을 조작할 수 있다.
  5. 동적 코드 분석: 런타임에 코드를 분석하고 조사가 가능
    예) 어노테이션 정보를 읽거나 메서드의 파라미터 정보를 동적으로 분석이 가능

주의사항

  • 성능이슈와 타입 안정성에 대해 문제가 발생할 수 있음
  • 적절한 예외처리와 타입 검사를 수행하여 안전한 코드를 작성해야함
  • 일반적으로 정적인 타입의 클래스 사용을 권장

 

반응형

'프로그래밍 언어 > 자바' 카테고리의 다른 글

this vs getClass()  (0) 2023.07.31
[자바] 예외클래스  (0) 2021.09.17
[자바] log4j 자바소스로 구현  (0) 2021.09.15
[자바] 로그(log)란?  (2) 2021.06.09
[자바] I/O(입출력) Stream이란?  (0) 2021.06.05
profile

Tom's Note

@크크크크

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!