`
mywhy
  • 浏览: 66514 次
  • 性别: 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编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作类、接口、字段以及方法的信息。通过反射,开发者可以动态地创建对象、调用方法、访问字段,甚至修改类的行为。这个过程通常...

    反射类使用.rar

    - **动态代理**:Java的动态代理机制(`java.lang.reflect.Proxy`)利用反射创建代理类,实现代理模式。 - **序列化和反序列化**:在处理`Serializable`对象时,`ObjectInputStream`和`ObjectOutputStream`会使用...

    运用反射得到类中的属性和值

    通过上述示例,我们可以看到如何利用Java反射机制获取一个类中的所有属性及其对应的值。这种方法非常适用于动态配置或解析对象的场景。需要注意的是,虽然反射提供了强大的功能,但它也存在一定的性能开销,因此在...

    反射私有内部类的例子

    本文将详细介绍如何利用反射机制访问和实例化一个私有的内部类,并通过代码示例进行说明。 #### 二、反射概述 反射是Java语言提供的一种能够在运行时分析类和对象的能力。它允许程序获取类、接口、方法和字段的信息...

    利用反射,接口等技术

    本篇文章将深入探讨如何利用反射和接口来优化代码结构,实现更好的分层和封装,以提升软件的可维护性和灵活性。 首先,让我们了解什么是反射。反射是程序在运行时检查和操作自身的能力,它允许我们在运行时动态地...

    通过构造及反射实现类属性赋值

    在上述`ReflectionCopy.copyProperties`方法中,我们首先获取源对象和目标对象的类信息,然后遍历源对象的所有声明字段。对于每个字段,我们将其设为可访问,找到目标对象对应名称的字段,然后检查类型是否兼容,...

    利用宏实现反射机制

    在编程领域,反射机制是一种强大的特性,允许程序在运行时检查自身的行为,包括类、对象、方法、属性等信息,并能动态地调用方法或改变数据。反射通常用于框架、库或者高度动态的代码中,使得程序具有更强的灵活性和...

    利用反射实现对象转json格式字符串

    总结来说,利用反射实现对象转JSON格式字符串涉及以下步骤: 1. 获取对象的类和所有声明的字段。 2. 使用反射访问字段并获取其值。 3. 将字段值添加到JSON映射中。 4. 如果对象有父类,递归处理父类的字段。 5. 将...

    Java软件开发实战 Java基础与案例开发详解 16-5 利用反射获取标注信息 共7页.pdf

    ### Java软件开发实战:利用反射获取标注信息 #### 16.5 利用反射获取标注信息 在Java中,**反射**是一种强大的技术,它允许程序在运行时检查类、字段、方法等的结构,并且可以创建和操作对象。其中一项重要的功能...

    java 反射取得类的私有属性,通过私有属性取得属性值

    这篇博客文章可能讨论了如何利用反射机制来获取类的私有属性并读取其对应的属性值。以下是关于这个主题的详细解释。 首先,我们需要理解什么是反射。Java反射API提供了一系列类和接口,如`Class`、`Field`、`Method...

    反射实例-JAVA反射机制

    这个例子中,`Class.forName`方法用于加载指定的类,而`getDeclaredMethods`方法则用于获取该类声明的所有方法。 ##### 2.2 Java类反射中的主要方法 在Java反射中,针对类的不同组成部分(构造函数、字段和方法)...

    运用注解改变反射之后类属性的顺序

    默认情况下,Java反射API(如`Field[] getDeclaredFields()`方法)返回的字段数组顺序与它们在源代码中的声明顺序一致。在某些场景下,如序列化或JSON转换,我们可能需要控制这些属性的顺序。 为了解决这个问题,...

    Java反射机制总结

    - **元数据查询**:开发人员可以利用反射来查询类的元数据,如字段名、方法签名等。 - **动态调用方法**:可以通过反射动态地调用类的方法,这对于实现回调机制、插件架构等很有帮助。 - **动态创建实例**:反射可以...

    hibernate 反射原理

    描述:本文章旨在深入探讨Java与Hibernate框架结合时所涉及的反射原理,通过解析Java反射机制的基础知识,理解Hibernate如何利用反射技术实现对象关系映射(ORM)。 ### Java反射原理概览 Java反射是Java语言的一...

    pdf反射机制-java

    7. 自动化工具:如Apache POI库使用反射来操作Excel文件,而JSch库利用反射与SSH服务器进行通信。 然而,尽管反射带来了很多便利,但也有一些潜在的问题需要注意: - 性能:反射操作通常比直接的Java代码慢,因为...

    类的反射机制

    类的反射机制是Java编程语言中的一个重要特性,它允许程序在运行时检查和操作类、接口、字段以及方法的信息。...因此,合理地利用反射,结合其他设计模式和编程技术,才能在保证程序稳定性的同时发挥反射的威力。

    17.5、利用反射调用webservice1

    - Java反射机制允许在运行时动态地获取类的信息并调用其方法。在本场景中,反射用于在运行时动态地查找并调用Web Service的方法。通过反射,可以依据服务信息(如serviceName和portName)来调用Web Service接口。 ...

    利用java反射、注解及泛型模拟ORM实现

    开发者可以在类、方法、变量等声明上添加注解,然后自定义注解处理器解析这些信息以执行特定的操作,比如代码生成、验证、持久化等。在ORM中,注解常用于标记需要映射的数据库字段和表信息。 3. 泛型(Generics):...

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

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

    利用java反射技术实现动态搜索所有字段

    在"利用Java反射技术实现动态搜索所有字段"这个主题中,我们将深入探讨如何使用Java反射API来查找并操作类的所有字段。以下是一些关键知识点: 1. **反射基础**:反射始于`java.lang.Class`类,它是所有Java类的...

Global site tag (gtag.js) - Google Analytics