首页 > 其他 > 详细

获取类的运行时结构

时间:2021-07-07 18:39:32      阅读:29      评论:0      收藏:0      [点我收藏+]

获取类的运行时结构:


package com.cheng.reflection;
?
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
?
//获得类的信息
public class Demo06 {
   public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, NoSuchMethodException {
       Class c1 = Class.forName("com.cheng.reflection.User");
?
       //获得类的名字:
       System.out.println(c1.getName());//获得包名和类名
       System.out.println(c1.getSimpleName());//获得类名
?
       //获得类的属性:
       System.out.println("=====================================");
       Field[] fields = c1.getFields();//只能找到public属性
?
       fields = c1.getDeclaredFields();//能找到全部属性
       for (Field field1 : fields) {
           System.out.println(fields);//输出
      }
?
       //获得指定属性的值
       Field field = c1.getDeclaredField("name");
       System.out.println(field);
?
       //获得类的方法
       System.out.println("=====================================");
       Method[] methods = c1.getMethods();
       for (Method method : methods) {
           System.out.println("getmethods:"+methods);//获得本类和父类的全部public方法
      }
       methods = c1.getDeclaredMethods();
       for (Method method : methods) {
           System.out.println("getDeclaredMethods"+methods);//获得本类的全部方法,私有方法也可
      }
       //获得指定方法
       //为啥放参数,因为有重载
       Method getname = c1.getMethod("getName",null);//方法名参数
       Method setname = c1.getMethod("setName",String.class);
       System.out.println(getname);
       System.out.println(setname);//输出
?
       //获得构造器
       System.out.println("=========================================");
       Constructor[] constructors = c1.getConstructors();
       for (Constructor constructor : constructors) {
           System.out.println(constructor);
      }
       constructors = c1.getDeclaredConstructors();
       for (Constructor constructor : constructors) {
           System.out.println(constructor);
      }
?
       //获得指定构造器
       Constructor constructor = c1.getConstructor(String.class,int.class,int.class);//丢参数
       System.out.println(constructor);
  }
}
?

 

获取类的运行时结构

原文:https://www.cnblogs.com/Alirious/p/14982034.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!