>Java >java지도 시간 >Java에서 리플렉션을 통해 클래스를 얻는 방법

Java에서 리플렉션을 통해 클래스를 얻는 방법

高洛峰
高洛峰원래의
2017-01-24 14:36:051215검색

직접 말하면 리플렉션이란 주로 메서드와 속성을 포함하여 클래스의 모든 정보를 얻을 수 있다는 의미입니다.

1. 메소드 획득에는 메소드 이름, 메소드 반환 유형, 메소드 액세스 한정자 획득, 리플렉션을 통한 메소드 실행이 포함됩니다.

2. 속성 이름, 유형, 액세스 한정자 및 속성 값을 포함하는 속성을 가져옵니다.

이러한 인수에는 해당 API 작업이 있습니다.

코드는 다음과 같습니다.

package poi;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import org.apache.poi.xwpf.usermodel.XWPFSettings;
public class ReflectMain {
 public static void main(String[] arg) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException, ClassNotFoundException, InstantiationException{
 XWPFSettings ct = new XWPFSettings();
 Class c = ct.getClass();
 System.out.println("---------------------指定类的成员变量-----------------------");
 System.out.println("反射获得的类的成员变量个数");
 System.out.println(c.getDeclaredFields().length);
 for (Field fil : c.getDeclaredFields()) {
  System.out.print(fil.getType()+" ");
  System.out.println(fil.getName());
 }
 System.out.println("------------------------类的构造方法-----------------------");
 for (Constructor constructor : c.getDeclaredConstructors()) {
  System.out.print(Modifier.toString(constructor.getModifiers())+" ");
  System.out.println(constructor.getName());
 }
 System.out.println("--------------------------成员方法--------------------------");
 for (Method method : c.getDeclaredMethods()) {
  System.out.print(Modifier.toString(method.getModifiers())+" ");
  System.out.print(method.getReturnType()+" ");
  System.out.println(method.getName());
 }
 System.out.println("---------------------------类的修饰符------------------------");
 int mod = c.getModifiers();
 String modifier = Modifier.toString(mod);
 System.out.println("modifier = " + modifier);
 System.out.println("------------------------指定类的完全限定名--------------------");
 System.out.println(c.getName());
 System.out.println("------------------------指定类的父类限定名--------------------");
 System.out.println(c.getSuperclass().getName());
 }
}

위 내용은 Java에서 리플렉션을 통해 클래스를 얻는 방법을 소개하는 이 글의 전체 내용입니다. 앞으로 모든 분들의 학습에 도움이 되기를 바랍니다. , 그리고 나는 또한 모든 영웅들과 함께 일하고 발전하기를 희망합니다.

Java에서 리플렉션을 통해 클래스를 얻는 방법과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.