`
mywhy
  • 浏览: 63579 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

利用反射查看类的声明信息

阅读更多
package test.my.chap0302;

import java.lang.annotation.Annotation;
import java.lang.reflect.Modifier;
import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;

public class ClassDeclarationView {

	/**
	 * @param args
	 * @throws ClassNotFoundException 
	 */
	@SuppressWarnings("unchecked")
	public static void main(String[] args) throws ClassNotFoundException {
		
		Class<?> classz = Class.forName("java.util.ArrayList");
		System.out.println("标准的类名:"+classz.getCanonicalName());
		System.out.println("标准的修饰符:"+Modifier.toString(classz.getModifiers()));
		TypeVariable[] typeVariable = classz.getTypeParameters();
		//输出类的泛型参数
		if(typeVariable.length!=0){
			for(TypeVariable type :typeVariable){
				System.out.println("泛型参数:\t"+type);
			}
		}else{
			System.out.println("没有参数!");
		}
		
		Type[] interfaces = classz.getInterfaces();
		if(interfaces.length!=0){
			for(Type ty:interfaces){
				System.out.println("实现的所有接口:\t"+ty);
			}
		}else{
			System.out.println("\t"+"空");
		}
		//输出类的直接继承类
		Type supers = classz.getGenericSuperclass();
		if(supers!=null){
			System.out.println("直接继承类是:\t"+supers);
		}else{
			System.out.println("null");
		}
		//输出所有的注解信息
		Annotation[] annotation = classz.getAnnotations();
		if(annotation.length!=0){
			for(Annotation at:annotation){
				System.out.println("\t"+at);
			}
		}else{
			System.out.println("没有注解信息!");
		}
	}

}
分享到:
评论

相关推荐

    java反射技术分析类结构实验

    运行程序,指定一个要分析的类名称,如java.lang.Double,输出类中声明的属性、方法、构造函数等。

    PHP反射类ReflectionClass和ReflectionObject的使用方法

    PHP中的扩展反射类,该扩展用来分析php程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。看一个这样的问题,php类的成员变量没有在类中声明,而是在函数中声明,有什么不同?复制代码 代码如下:...

    01:详解C#中的反射.pdf

    查看类中的构造方法: NewClassw nc = new NewClassw(); Type t = nc.GetType(); ConstructorInfo[] ci = t.GetConstructors(); //获取类的所有构造函数 foreach (ConstructorInfo c in ci) //遍历每一个构造...

    反射处理java泛型

    当我们声明了一个泛型的接口或类,或需要一个子类继承至这个泛型类,而我们又希望利用反射获取这些泛型参数信息。这是本文将要介绍的ReflectionUtil是为了解决这类问题的辅助工具类,为java.lang.reflect标准库的...

    Java经典编程源码基础例程300.zip

    实例071 查看类的声明 108 实例072 查看类的成员 110 实例073 查看内部类信息 112 实例074 动态设置类的私有域 113 实例075 动态调用类中方法 115 实例076 动态实例化类 116 实例077 创建长度可变的数组 117 实例078...

    Java开发技术大全(500个源代码).

    getClassName.java 利用反射机制获取类的名字 invokeConstructor.java 利用反射机制调用构造器 invokeMethod.java 利用反射机制调用成员方法 listConstructors.java 利用反射机制获取构造器列表 listFields....

    AJAX JavaScript反射机制的介绍

     反射机制指的是程序在运行时能够获取自身的信息。例如一个对象能够在运行时知道自己有哪些方法和属性。  在JavaScript中利用for(…in…)语句实现反射  在JavaScript中有一个很方便的语法来实现反射,即for(…...

    国内最全的.net面试题目

    国内最全的.net面试题目2008-07-10...利用反射,配置 将类于数据库表映射 6.类成员有( )种可访问形式 可访问形式?不懂。 可访问性:public ,protected ,private,internal 7.用sealed修饰的类有什么特点 。。。。。。。

    疯狂JAVA讲义

    学生提问:既然内部类是外部类的成员,是否可以为外部类定义子类,在子类中再定义一个内部类来重写其父类中的内部类? 211 6.7.4 局部内部类 211 6.7.5 匿名内部类 212 6.7.6 闭包(Closure)和回调 215 6.8 ...

    Java开发技术大全 电子版

    9.6利用反射获取运行时类信息293 9.6.1使用isInstance()方法判断所属类294 9.6.2获取成员方法信息295 9.6.3获取构造方法信息296 9.6.4获取类的成员属性297 9.6.5根据方法的名称来执行方法299 9.6.6创建新的...

    Java语言程序设计的课程设计项目——利用Java实现地球系动画完整实现实例(第3部分).pdf

    注意: 1) 数组类是一个空类(自身没有声明任何成员变量、成员方法、构造函数和 Annotation 等),编译器其实是对 Array.length()这样的语句做了特殊的处理,直接编译成 arraylength 指令。 2) 相比 C/C++中的数组...

    javaSE代码实例

    15.1.5 内部类与外部类的预定义对象引用this 327 15.2 局部内部类 328 15.2.1 局部内部类的定义及创建 328 15.2.2 局部变量与局部内部类 329 15.2.3 静态方法中的局部内部类 331 15.3 静态内部类 332 ...

    asp.net知识库

    利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP.Net应用程序的多进程模型 NET委托:一个C#睡前故事 [推荐] - [原创] Microsoft .NET策略及框架概述 卸载Class? Web Form 窗体 如何实现web...

    java基础案例与开发详解案例源码全

    16.5 利用反射获取注解信息438 16.6 上机练习440 17.1 功能描述442 17.2 总体设计442 17.3 代码实现442 17.4 程序的运行与发布457 17.5 本章练习460 第18章 18.1 JDBC简介462 18.2 JDBC类和接口462 18.2.1 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例152 查看类的声明 198 实例153 查看类的成员 199 实例154 按继承层次对类排序 201 实例155 查看内部类信息 202 7.2 反射的进阶 203 实例156 动态设置类的私有域 203 实例157 动态调用类中的方法 204 实例158 ...

    C#经典实例(第4版) 徐敬德(译) 非扫描版 高清带书签

    第4版重新编写了许多解决方案,以充分利用C#最近的创新,例如新的表达式级别功能、成员声明功能和语句级别功能。本书还在范例中纳入了动态编程和异步编程的新应用,帮助读者了解如何应用这些语言特性。 本书涵盖...

Global site tag (gtag.js) - Google Analytics