To put it bluntly, reflection means that you can obtain all the information of a class, mainly including methods and attributes.
1. Obtaining the method includes obtaining the name of the method, the return type of the method, the access modifier of the method, and executing the method through reflection.
2. Obtain the attribute including the attribute name, type, access modifier, and the value of the attribute.
These acquisitions have corresponding API operations.
The code is as follows:
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()); } }
The above content is the entire content of this article introducing how to obtain a class through reflection in java. I hope it will be helpful to everyone’s future study, and I also hope to work with all the heroes. study progress.
For more articles related to how to obtain a class through reflection in Java, please pay attention to the PHP Chinese website!