java反射api_Java反射API使用实例

packagecom.pb.reflect.classinfo;importjava.lang.annotation.Annotation;importjava.lang.reflect.Constructor;importjava.lang.reflect.Method;public classTestReflectDemo {public static voidmain(String[] args) {//下面的代码可以获取ReflectDemo的Class对象

Class class1 = ReflectDemo.class;//获取ReflectDemo中全部的构造方法

Constructor[] constructor =class1.getDeclaredConstructors();

System.out.println("########ReflectDemo全部的构造方法########");for(Constructor constructor2 : constructor) {

System.out.println(constructor2.toString());

}//获取ReflectDemo的public构造方法

System.out.println("########ReflectDemo公共的构造方法########");

Constructor[] constructor1=class1.getConstructors();for(Constructor constructor2 : constructor1) {

System.out.println(constructor2.toString());

}//获取ReflectDemo的public 的方法

System.out.println("########ReflectDemo公共的方法########");

Method[] methods=class1.getDeclaredMethods();for(Method method : methods) {

System.out.println(method.toString());

}//获取对应类的指定方法,方法名、方法参数的类型,找到info方法,info带的参数类型是String

try{

System.out.println("########ReflectDemo带有String类型参数的info方法########");

Method method=class1.getMethod("info", String.class);

System.out.println(method.toString());

}catch(SecurityException e) {

e.printStackTrace();

}catch(NoSuchMethodException e) {//TODO Auto-generated catch block

e.printStackTrace();

}//获取ReflectDemo的全部注释

Annotation[] annotation=class1.getAnnotations();

System.out.println("########ReflectDemo所有的注释 信息#####");for(Annotation annotation2 : annotation) {

System.out.println(annotation.toString());

}//获取ReflectDemo的包信息

Package package1 =class1.getPackage();

System.out.println(package1.toString());//获取ReflectDemo的内部类

Class[] inners =class1.getDeclaredClasses();

System.out.println("########ReflectDemo所有的内部类#####");for(Class class2 : inners) {

System.out.println(class2.toString());

}try{

Class inclass= Class.forName("com.pb.reflect.classinfo.ReflectDemo$inner");//输出内部类的信息

System.out.println("########ReflectDemo所有的内部类的信息");

System.out.println("inclass对应类的外部类为:"+inclass.getDeclaringClass());

System.out.println("inclass对应类的包为:"+inclass.getPackage());

System.out.println("inclass对应类的父类为:"+inclass.getSuperclass());

System.out.println("inclass对应类的名称为:"+inclass.getName());

}catch(ClassNotFoundException e) {

e.printStackTrace();

}

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值