개발자 미니민의 개발스터디

[JAVA] 자바 - String 클래스 정보 얻기

by mini_min
[JAVA]
자바 - String 클래스 정보 얻기

✔️ 자바 String 정보 얻기

String 클래스에 대한 정보를 얻기 위해서는 Class<?> cls = String.class; //

위와 같이 컴파일 중 클래스에 대한 정보를 얻을 수 있다. 

 

if 런타임시 문자열로 클래스의 정보를 넘겨 받는 경우에는 반드시 패키지명도 포함해야한다.

//Class<?> cls = String.class; // 컴파일 중 클래스에 대한 정보 얻기
Class<?> cls = Class.forName("java.lang.String");
//런타임시 문자열로 클래스의 정보 넘겨 받는 경우(반드시 패키지명 포함하기)
System.out.println("상위 클래스..");
if(cls.getSuperclass() != null) {
System.out.println(cls.getSuperclass().getName());
}

 

 

◼️ 인터페이스 이름 출력

인터페이스를 for 향상문 Class<?> s 에 넣어서 인터페이스 이름을 출력할 수도 있다. (getName 으로)

System.out.println("인터페이스 ..");
for(Class<?> c : cls.getInterfaces()) {
System.out.println(c.getName());
}

 

 

◼️ 생성자 정보 출력

생성자 출력하기 위해서는 Constructor<?> [] cc = cls.getConstructors(); 으로 정보를 출력한다.  cls 는 Class 클래스의 객체이고, 생성자를 받는 Constructor 클래스를 만들어내고 for 향상문에 넣어서 정보를 출력할 수 있다.

System.out.println("생성자...");
Constructor<?> [] cc = cls.getConstructors();
for(Constructor<?> c : cc) {
System.out.println(c);
}

 

 

◼️ 필드정보 출력

필드 정보를 출력할 때, public 필드 출력과 private 포함 모든 필드 정보를 출력하는 코드가 좀 다르다.

System.out.println("필드...");
//Field[] ff = cls.getField(); //public 필드
Field[] ff = cls.getDeclaredFields(); //private 포함 모든 필드
for(Field f : ff) {
System.out.println(f);
}

 

 

◼️ 메소드 정보 출력

메소드 정보를 출력할 때, public 메소드만 출력하는 경우, private 포함 모든 메소드 출력하는 코드가 각각 다르다!

필드 정보 호출하는 코드와 유사하니까 둘 중 하나라도 제대로 기억하자!!

System.out.println("메소드..");
//Method[] mm = cls.Methods(); // public 메소드만
Method[] mm = cls.getDeclaredMethods();//private 포함 모든 메소드
for(Method m : mm) {
System.out.println(m);
}

 

 

 

 

 

블로그의 프로필 사진

블로그의 정보

개발자 미니민의 개발로그

mini_min

활동하기