java反射获取类信息
来源:互联网 发布:魔盒cms微信营销平台 编辑:程序博客网 时间:2024/05/20 07:52
(转载)http://www.cnblogs.com/zhuawang/archive/2012/12/09/2809895.html
import java.lang.annotation.Annotation;import java.lang.reflect.Constructor;import java.lang.reflect.Method;//使用两个注释修饰该类@SuppressWarnings(value = "unchecked")@Deprecatedpublic class ClassTest { // 为该类定义一个私有的构造器 private ClassTest() { } // 定义一个有参数的构造器 public ClassTest(String name) { System.out.println("执行有参数的构造器"); } // 定义一个无参数的info方法 public void info(String str) { System.out.println("执行有参数的info方法" + ",其实str参数值:" + str); } // 定义一个测试用的内部类 class Inner { } public static void main(String[] args) throws Exception { // 下面代码可以获取ClassTest对应的Class Class<ClassTest> clazz = ClassTest.class; // 获取该 Class 对象所对应类的全部构造器 Constructor[] ctors = clazz.getDeclaredConstructors(); System.out.println("ClassTest 的全部构造器如下:"); for (Constructor c : ctors) { System.out.println(c); } // 获取该 Class 对象所对应类的全部 public 方法 Constructor[] publicCtors = clazz.getConstructors(); System.out.println("ClassTest 的全部 public 构造器如下 :"); for (Constructor c : publicCtors) { System.out.println(c); } // 获取该 Class 对象所对应类的指定方法 Method[] mtds = clazz.getMethods(); System.out.println("ClassTest 的全部 public 方法如下:"); for (Method md : mtds) { System.out.println(md); } // 获取该 Class 对象所对应类的指定方法 System.out.println("ClassTest 里带一个字符串参数的 info 方法为:" + clazz.getMethod("info", String.class)); //获取该 Class 对象所对应类的上的全部注释 Annotation[] anns=clazz.getAnnotations(); System.out.println("ClassTest 的全部 Annotattion 如下:"); for (Annotation an : anns) { System.out.println(an); } System.out.println("该 Class 元素上的 @SuppressWarnings 注释为:"+ clazz.getAnnotation(SuppressWarnings.class));<pre name="code" class="java">
//获取该 Class 对象所对应类的全部内部类 Class<?>[] inners=clazz.getDeclaredClasses(); System.out.println("ClassTest 的全部内部类如下:"); for (Class c : inners) { System.out.println(c); } //使用 Class.forName 方法加载 ClassTest 的 Inner 内部类 Class inClazz=Class.forName("ClassTest$Inner"); //通过getDeclaringClass()防伪该类所在的外部类 System.out.println("inClazz 对应类所在的外部类为:"+inClazz.getDeclaredClasses()); System.out.println("ClassTest 的包为:"+clazz.getPackage()); System.out.println("ClassTest 的父类为:"+clazz.getSuperclass()); } }
clazz.getDeclaredClasses()
clazz.getDeclaredFields()
interface Donothing {void study();}class Ani {public void drink() {}}class StudentOne extends Ani implements Donothing{public int age;public String name;public StudentOne() {}public StudentOne(int age, String name) {this.age = age;this.name = name;}public void now() {}private void feture() {}@Overridepublic void study() {}@Overridepublic void drink() {}}
这里
System.out.println(clazz.getDeclaredMethods().length);输出为4。
如果将将study方法注释掉
// @Override// public void study() {// }输出为3。
0 0
- Java反射获取类信息
- java反射获取类信息
- java反射获取类的信息
- Java反射之获取类的信息
- Java基础-利用反射获取类信息
- Java反射机制-获取类信息
- java反射---获取类型信息
- Java反射机制-Class类获取类信息
- Java 反射(1):基本类周边信息获取
- Java 反射(3):类内部信息获取
- java反射——获取类的方法信息
- Java反射获取类和对象信息全解析
- Java反射获取类和对象信息全解析
- Java反射获取类和对象信息全解析
- Java反射获取类和对象信息全解析
- Java反射机制总结学习--获取类的信息
- Java反射获取类和对象信息全解析
- 利用java反射机制获取一个类中信息
- yii2中的多表查询
- 对Qt编译环境的认识
- javascript同步异步机制
- Http/FTP多线程断点续传下载
- jsp 的四个作用域 :page、request、session和application的区别
- java反射获取类信息
- 欢迎使用CSDN-markdown编辑器
- iframe使用总结(实战)
- 医学图像常用模型评价方法
- PostgreSQL如何在一大堆字段里面排除几个字段select出来
- seo 禁止百度快照
- hdu 5745 dp+bitset优化
- Spring AOP 源码
- 字符串格式转换