标签:turn === import 成员 struct 包名 field getc ring
import java.lang.reflect.Field; import java.lang.reflect.Method; /** * 获取Class对象的方式: 1、Class.forName("类全名"); //加上包名的类名 * 2、类名.class * 3、new出一个对象后直接用getClass()方法来获取 * * 注意: 1、同一个字节码文件(*.class)在同一个程序当中只会被加载一次,不论用哪一种方式都得到的Class对象都是同一个。 * 2、每一个类对应一个字节码文件(*.class) * * * Class对象的获取功能 1、获取成员变量们 Field[] getFields() : 获取所有的public成员变量 * Field getField() : 获取特定的public成员变量(只能是公有) * * Field[] getDeclaredFields(): 获取所有的成员变量,不考虑权限修饰符,但在使用非公有变量的时候要用setAccessible(ture)来忽略权限修饰符 * Field getDeclaredField() : 获取特定的public成员变量 * * 2、获取构造方法们 Constructor<T> getConstructor(类<?>...parameterTypes)
* Constructor<?>[] getConstructors() * Constructor<T> getDeclaredConstructor(类<?>... parameterTypes) * Constructor<?>[] getDeclaredConstructors() * * 3、获取成员方法们 Method[] getMethods() Method getMethod(String name, 类<?>...parameterTypes) * * Method[] getDeclaredMethods() Method getDeclaredMethod(String name, 类<?>...parameterTypes) * 4、获取类名 getName() */ public class Day1 { public String name; public String game; private int number; public static void main(String[] args) throws Exception { // 1、Class.forName("类全名"); //加上包名的类名 Class<?> class1 = Class.forName("com.hzu.se21090706.reflect.Day1"); // 2、类名.class Class<?> class2 = Day1.class; // 3、new出一个对象后直接用getClass()方法来获取 Day1 day1 = new Day1(); Class<?> class3 = day1.getClass(); // 注意: 1、同一个字节码文件(*.class)在同一个程序当中只会被加载一次,不论用哪一种方式都得到的Class对象都是同一个。 // 2、每一个类对应一个字节码文件(*.class) System.out.println(class1 == class2); System.out.println(class1 == class3); // 两个结果都是true //Field[] getFields() : 获取所有的public成员变量 Field[] fields = class1.getFields(); for (Field field: fields) { System.out.println(field); } //Field getField() : 获取特定的public成员变量 Field field = class1.getField("name"); System.out.println(field); // Field[] getDeclaredFields(): 获取所有的成员变量, // 不考虑权限修饰符,但在使用非公有变量的时候要用setAccessible(ture)来忽略权限修饰符 System.out.println("========================="); Field[] fields2 = class1.getDeclaredFields(); for (Field field2 : fields2) { System.out.println(field2); } System.out.println("====================="); Method[] methods = class1.getMethods(); for (Method method : methods) { System.out.println(method); } } @Override public String toString() { return "Day1 []"; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } }
标签:turn === import 成员 struct 包名 field getc ring
原文地址:https://www.cnblogs.com/li1234567980/p/11146062.html