Simple Relection

package relection;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Scanner;

public class TestReflection01 {

 public static void main(String[] args) {
  System.out.println("请输入类名:");
  Scanner scn = new Scanner(System.in);
  String className = scn.next();
  System.out.println("当前类名称是:" + className);

  try {
   Class c = Class.forName(className);

   Field[] fields = c.getDeclaredFields();
   System.out.println("解析属性信息----------------Field--------------");
   for (Field f : fields) {
    System.out.println("属性" + f.toString());
    System.out.println("/t数据类型" + f.getType());
    System.out.println("/t属性名" + f.getName());
    int modifier = f.getModifiers();
    System.out.println("/t属性修饰符" + Modifier.toString(modifier));
   }

   Method[] methods = c.getDeclaredMethods();
   System.out.println("解析方法信息--------------Method-----------------");
   for (Method m : methods) {
    System.out.println("方法" + m.toString());
    System.out.println("/t方法名" + m.getName());
    int modifier = c.getModifiers();
    System.out.println("/t方法修饰符:" + Modifier.toString(modifier));
    System.out.println("/t方法参数列表");
    Class[] clas = m.getParameterTypes();
    for(Class c2 : clas){
     System.out.println(c2.toString()+"/t");
    }
    System.out.println("返回值类型:"+m.getReturnType());
   }
   
   Constructor[] constructors = c.getDeclaredConstructors();
   System.out.println("解析构造方法----------------Constructor----------------");
   for(Constructor cs : constructors){
    System.out.println("构造方法"+cs.toString());
    System.out.println("/t构造方法名称:"+cs.getName());
    int modifier = cs.getModifiers();
    System.out.println("访问修饰符:"+Modifier.toString(modifier));
    System.out.println("参数列表");
    Class[] cl = cs.getParameterTypes();
    for(Class c3 : cl){
     System.out.println("/t"+c3.toString());
    }
   }
   
   System.out.println("解析父类信息-----------SuperClass-------------");
   Class superClass = c.getSuperclass();
   System.out.println("当前类的父类是:"+superClass.toString());
   
   Class[] interfaces = c.getInterfaces();
   System.out.print("当前类所实现的接口");
   for(Class c4 : interfaces){
    System.out.println(c4.toString()+"/t");
   }
   Package pack = c.getPackage();
   System.out.println("当前类所在包的是:"+pack.toString());
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值