- getClass() 메서드
Object 클래스에 속해 있는 메서드
현재 참조하고 있는 클래스를 확인 할 수 있는 메서드
(예를들어 A 클래스를 참조하고 있으면 'XX.XXX.class A' 이런식으로 출력됨.
사용하려면 인스턴스가 생성되어 있어야 함.
getName() 메서드는 클래스 빼고 클래스 이름만 출력됨.
- forName(클래스명)
(매개변수로 보내는 클래스명이 존재하지 않으면 ClassNotFoundException 에러남. throws로 날려도 됨)
사용하려면 컴파일된 클래스 파일이 있어야 함(한 번이라도 Run 하면 out 폴더에 있음)
- ex)
Class c2 = Class.forName("Main");
-> 패키지명.클래스이름 으로 찾으면 된다.
해당 클래스가 없을 수 있으니까 메서드에 throws ClassNotFoundException 써주면 된다.
- 생성자 가져오기
Constructor[] cons = c2.getConstructors(); // 모든 생성자 가져오기
for(Constructor c : cons) {
System.out.println("생성자 정보: " + c);
}
- 멤버 변수 가져오기
Field[] fields = c2.getFields(); // 모든 변수(필드)정보 가져오기
Field[] fields2 = c2.getDeclaredFields(); // 모든 변수(필드)정보 가져오기 (private 포함)
for(Field f : fields){ // Main에 필드가 private라서 접근 못 함. 보려면 public으로 변경할 것.
System.out.println("필드 정보 : " + f);
}
- 멤버 메서드 가져오기
Method[] methods = c2.getMethods(); // 모든 메서드정보 가져오기
for(Method m : methods){
System.out.println("메서드 정보 : " + m);
}
- 정보 얻을 클래스의 파일명을 Class 변수에 직접 대입
사용하려면 컴파일된 클래스 파일이 있어야 함(한 번이라도 Run 하면 out 폴더에 있음)
- ex)
Class c1 = Ex29_2_Math.class;