Pour parler franchement, la réflexion signifie que vous pouvez obtenir toutes les informations d'une classe, y compris principalement les méthodes et les attributs.
1. L'obtention de la méthode comprend l'obtention du nom de la méthode, le type de retour de la méthode, le modificateur d'accès de la méthode et l'exécution de la méthode par réflexion.
2. Obtenez l'attribut comprenant le nom de l'attribut, le type, le modificateur d'accès et la valeur de l'attribut.
Ces acquisitions ont des opérations API correspondantes.
Le code est le suivant :
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()); } }
Le contenu ci-dessus est l'intégralité du contenu de cet article présentant comment obtenir une classe par réflexion en Java. J'espère que cela sera utile à tout le monde. future étude, et j’espère aussi en discuter avec vous. Apprenons et progressons ensemble.
Pour plus d'articles sur la façon d'obtenir une classe par réflexion en Java, veuillez faire attention au site Web PHP chinois !