Class 객체는 객체의 클래스를 설명하는 일종의 메타 객체입니다. 주로 Java의 리플렉션 기능과 함께 사용됩니다. 실제 클래스의 "청사진"이라고 생각할 수 있습니다. 예를 들어 다음과 같은 클래스 Car가 있습니다.
public class Car {
public String brand;
}
그런 다음 "Car"클래스를 설명하는 Class 객체를 생성 할 수 있습니다.
Class myCarClass = Class.forName("Car");
이제 해당 Class 객체의 Car 클래스에 대해 모든 종류의 쿼리를 수행 할 수 있습니다.
myCarClass.getName() - returns "Car"
myCarClass.getDeclaredField("brand") - returns a Field object describing the "brand" field
등등. 모든 Java 객체에는 Java 객체의 클래스를 설명하는 Class 객체를 반환하는 getClass () 메소드가 있습니다. 따라서 다음과 같이 할 수 있습니다.
Car myCar = new Car();
Class myCarClass = myCar.getClass();
이것은 또한 당신이 모르는 개체, 예를 들어 외부에서 얻은 개체에 대해서도 작동합니다.
public void tellMeWhatThisObjectsClassIs(Object obj) {
System.out.println(obj.getClass().getName());
}
이 메소드에 모든 자바 객체를 공급할 수 있으며 주어진 객체의 실제 클래스를 인쇄합니다.
Java로 작업 할 때 대부분의 경우 Class 객체에 대해 걱정할 필요가 없습니다. 하지만 몇 가지 편리한 사용 사례가 있습니다. 예를 들어 객체 직렬화 및 역 직렬화에 자주 사용되는 특정 클래스의 객체를 프로그래밍 방식으로 인스턴스화 할 수 있습니다 (예 : Java 객체를 XML 또는 JSON으로 / 뒤로 변환).
Class myCarClass = Class.forName("Car");
Car myCar = myCarClass.newInstance();
특정 경우에 매우 유용한 클래스 등의 선언 된 모든 필드 또는 메서드를 찾는 데 사용할 수도 있습니다. 예를 들어 메서드가 알 수없는 객체를 전달 받고 이에 대해 더 많이 알아야하는 경우 (예 : 일부 인터페이스를 구현하는 경우) Class 클래스가 여기에서 친구가됩니다.
간단히 말해서 java.lang.reflect 패키지에있는 클래스, 필드, 메소드 등의 클래스를 사용하면 정의 된 클래스, 메소드, 필드를 분석하고 이들의 새 인스턴스를 생성하고 모든 종류의 기타 항목을 호출 할 수 있습니다. 런타임에이를 동적으로 수행 할 수 있습니다.
Class
클래스에서 상속Object
자체. 클래스 를 나타내는 객체를Class.class
반환합니다 . 반성 할 수 있습니다. 내 머리 ASPLODE.Class
Class