개발
Class 클래스 본문
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
class Computer{
String cpu;
String ram;
public Computer() {}
public Computer(String cpu, String ram){
this.cpu = cpu;
this.ram = ram;
}
public String getCpu() { return cpu; }
public String getRam() { return ram; }
public void setCpu(String cpu) { this.cpu = cpu; }
public void setRam(String ram) { this.ram = ram; }
}
public class Test {
public static void main(String[] args) throws Exception {
Computer com = new Computer();
//메타데이터를 얻어올 수 있는 Class 객체
Class computerClass = com.getClass();
System.out.println(computerClass.getName()); //Class의 이름 A.Computer(패키지명 포함)
System.out.println(computerClass.getSimpleName());//Class의 이름 Computer
//클래스객체 문자로 얻기
Class computerClass2 = Class.forName("A.Computer");
System.out.println(computerClass2.getName()); //Class의 이름 A.Computer(패키지명 포함)
System.out.println(computerClass2.getSimpleName());//Class의 이름 Computer
//생성자 얻기 ()
Constructor[] con = computerClass.getDeclaredConstructors();
for (Constructor constructor : con){
System.out.println(constructor.getName());
//파라미터 정보 가져오기
Class[] params = constructor.getParameterTypes();
for (int i = 0; i < params.length ; i++) {
System.out.println("파라미터 클래스 : "+params[i].getSimpleName());
}
}
//필드 얻기 ()
Field[] fields = computerClass.getDeclaredFields();
for(Field field : fields) {
System.out.println("필드타입 : "+field.getType().getSimpleName());
System.out.println("필드명 : "+field.getName());
}
//메소드정보 얻기 ()
Method[] methods = computerClass.getDeclaredMethods();
for(Method method : methods){
System.out.println("메소드 명 : " + method.getName());
System.out.println("리턴타입 : " + method.getReturnType().getSimpleName());
Class[] params = method.getParameterTypes();
for (int i = 0; i < params.length ; i++) {
System.out.println("파라미터 클래스 : "+params[i].getName());
}
}
}
}
'Java' 카테고리의 다른 글
ORACLE OPEN JPA에서 설정과 다른 schema의 db를 조회 (0) | 2022.01.09 |
---|---|
Stream (0) | 2021.03.14 |
제네릭 기초 (0) | 2021.03.06 |
자주쓰는 날짜 관련 api 정리 (yyyyMMddHHmmss) (0) | 2021.02.23 |
[Java] 제곱근 구하기 (0) | 2021.01.23 |
Comments