- getDeclaredConstructor(s)|Method(s)|Field(s)获取对应对象
- getContructor(s)|Method(s)|Fidld(s) 只能获取public对象
- 访问非作用域内构造方法、方法、成员变量、会抛出异常
package com.qdxiaobu.reflect;import com.qdxiaobu.reflect.entity.Employee;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Locale;public class getDeclaredSample { public static void main(String[] args) { // 获取对象所有成员变量值 try { Class employeeClass = Class.forName("com.qdxiaobu.reflect.entity.Employee"); Constructor constructor = employeeClass.getConstructor( new Class[] {Integer.class, String.class, Float.class, String.class}); Employee em = (Employee) constructor.newInstance(new Object[] {100, "gaoi", 12f, "研发部"}); Field[] Fields = employeeClass.getDeclaredFields(); for (Field Field : Fields) { System.out.println(Field.getName()); if (Field.getModifiers() == 1) { // public 修饰 Object val = Field.get(em); System.out.println(Field.getName() + ":" + val); }else if (Field.getModifiers() == 2){ String methodName = "get" + Field.getName().substring(0, 1).toUpperCase() + Field.getName().substring(1); Method method = employeeClass.getMethod(methodName); Object invoke = method.invoke(em); System.out.println(Field.getName()+":"+invoke); } } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } }}