여러 클래스 중 상황에 따라 다른 클래스를 사용해야 할 때, 반환받는 클래스가 정확히 어떤 자료형인자 모를 때 등
모르는 클래스의 정보를 사용할 경우에 사용하는 것이 Class 클래스이다.
Class 클래스를 선언하고 클래스 정보를 가져오는 방법은 3가지가 있다.
1. Object 클래스의 getClass() 메서드 사용하기
String s = new String();
Class c = s.getClass(); // getClass() 메서드의 반환형은 Class
2. 클래스 파일 이름을 Class 변수에 직접 대입하기
Class c = String.Class;
3. Class.forName("클래스이름") 메서드 사용하기
Class c = Class.forName("java.lang.String");
1번의 경우 Object에 선언한 getClass() 메서드는 모든 클래스가 사용할 수 있는 메서드이고, 이 메서드를 사용하려면 이미 생성된 인스턴스가 있어야한다.
2, 3번의 경우 컴파일된 클래스 파일이 있다면 클래스 이름만으로 Class 클래스를 반환받는다.
package object;
public class ClassTest {
public static void main(String[] args) throws ClassNotFoundException{
Person person = new Person();
Class pClass1 = person.getClass();
System.out.println(pClass1.getName());
Class pClass2 = Person.class;
System.out.println(pClass2.getName());
Class pClass3 = Class.forName("object.Person");
System.out.println(pClass3.getName());
}
}
3번째 방법에서 forName() 메서드는 매개변수로 쓰이는 값이 문자열인데, 문자열에 해당하는 클래스가 존재하지 않으면 클래스를 가져오는데 실패한다. 이 때 ClassFoundException이 발생.
이러한 방법으로 Class 클래스를 통하여 클래스 정보를 알 수 있다.
'자바 기초' 카테고리의 다른 글
자바 String 클래스, StringBuffer, StringBuilder- Do it ! 자바프로그래밍기초 (0) | 2022.07.26 |
---|---|
자바 clone() 메서드 - Do it ! 자바프로그래밍기초 (0) | 2022.07.25 |
자바 hashCode() 메서드 - Do it ! 자바프로그래밍 기초 (0) | 2022.07.25 |
자바 Object 클래스, toString, equals - Do it! 자바프로그래밍기초 (0) | 2022.07.25 |
자바 인터페이스 상속 - Do it! 자바프로그래밍 기초 (0) | 2022.07.22 |