`
namezhou
  • 浏览: 158656 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java:基于反射的类分析器 适合初学者学习反射

阅读更多

自己写的一个利用反射实现的类分析器,初学者可以通过这个程序学习java的反射机制

 

package dwr.test.helloworld;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
/**
 * @author Ericzhou
 */
public class StringClassTester {
	public static void main(String[] args) {
		ClassTester(java.lang.String.class);
	}
	public static void ClassTester(Class c) {
		// 获取属性的数组
		Field[] fields = c.getFields();
		System.out.println("得到属性" + fields.length + "个");
		System.out.println("=========================");
		for (int i = 0; i < fields.length; i++) {
			Field f = fields[i];
			System.out.println((i + 1) + ". " + Modifier.toString(f.getModifiers()) + " "
					+ toType(f.getType()) + " " + f.getName());
		}
		// 属性分析完毕
		// 开始分析方法
		Method[] ms = c.getMethods();
		System.out.println("=========================");
		System.out.println("得到方法" + ms.length + "个");
		System.out.println("=========================");
		for (int i = 0; i < ms.length; i++) {
			Method m = ms[i];
			System.out.print((i + 1) + ". " + Modifier.toString(m.getModifiers()) + " "
					+ toType(m.getReturnType()) + " " + m.getName() + "(");

			// 输出参数列表
			Class[] pc = m.getParameterTypes();
			for (int j = 0; j < pc.length; j++) {
				System.out.print(toType(pc[j]) + " arg" + j);
				if (j != (pc.length - 1)) {
					System.out.print(",");
				}
			}
			System.out.println(");");
		}
	}

	/**
	 * 
	 * 辅助函数,获取非精确类型
	 * @param type
	 * @return
	 */
	private static String toType(Class type) {
		String name = type.getName();
		String[] str = name.split("\\.");
		int len = str.length;
		if (len == 0) {
			return name;
		} else {
			return str[len - 1];
		}
	}
}

 

 

 

 

 

分享到:
评论

相关推荐

    java谜题 java初学者必备

    Java编程语言作为一款广泛应用的面向对象的编程语言,以其跨平台、开源、高效的特点深受开发者喜爱,尤其适合初学者入门。"Java谜题"是一种趣味性的学习方式,旨在通过解决实际问题来提升初学者对Java语言的理解和...

    180个针对Java初学者的简单实例

    对于初学者来说,通过实例学习是掌握Java语法和概念的最佳方式。"180个针对Java初学者的简单实例"提供了丰富的实践机会,帮助新手逐步熟悉编程环境,理解基本语法,以及如何解决实际问题。 这些实例可能涵盖了以下...

    21天学会Java语言(适合初学者)

    对于初学者来说,"21天学会Java语言"是一份非常实用的学习资源,旨在帮助新手在短时间内掌握Java编程基础。这份教程可能包含了从基本语法到实际应用的各种示例,通过丰富的源代码实例来辅助理解。 在21天的学习过程...

    透视Java: 反编译、修补和逆向工程技术(原版)

    ### 透视Java: 反编译、修补和逆向工程技术 ...无论是对于初学者还是有经验的开发者来说,都是不可多得的宝贵资源。通过学习本书,可以极大地提升个人在Java领域的技术实力,并在实际工作中发挥重要作用。

    java初学者编程B

    Java编程B是一个面向初学者的学习资源,旨在帮助新手掌握Java编程基础。在学习Java时,了解其核心概念、语法和编程范式至关重要。Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司)...

    java基础知识,推荐初学者

    Java编程语言是世界上最流行的编程语言之一,尤其适合初学者入门。它以其“一次编写,到处运行”的特性闻名,具有良好的可移植性和强大的功能。以下是一些关于Java基础知识的关键知识点: 1. **Java环境搭建**:...

    java方法反射的代码

    在Java中,反射主要用于在运行时分析类和对象,包括类的方法、字段、构造器等信息。这对于实现动态类型、元编程和插件机制等场景非常有用。下面我们将深入探讨Java方法反射的代码示例及其应用。 一、Java反射的基本...

    Java初学者入门教学

    11.3 反射:运行期类信息 11.3.1 一个类方法提取器 11.4 总结 11.5 练习 第12章 传递和返回对象 12.1 传递句柄 12.1.1 别名问题 12.2 制作本地副本 12.2.1 按值传递 12.2.2 克隆对象 12.2.3 使类具有克隆能力 ...

    java的资料进攻初学者

    初学者在学习Java时,首先需要理解其基本语法、面向对象编程概念以及Java的生态系统。 《JAVA面向对象编程(孙卫琴)》这本书很可能是你学习Java面向对象编程的重要资源。面向对象编程(Object-Oriented Programming...

    疯狂JAVA:突破程序员基本功的16课 源代码

    8. **反射机制**:Java的反射机制允许在运行时动态访问类的信息,源码中可能包含Class类的使用、Method和Constructor的调用等。 9. **JDBC数据库操作**:学习者可以从中了解如何使用Java连接数据库,执行SQL语句,...

    java学习帮助文档

    这份"java学习帮助文档"应该涵盖了以上所有主题,通过深入学习和实践,初学者将能够逐步掌握Java编程,并具备开发实际项目的技能。在学习过程中,不断练习和阅读优秀代码,结合实际问题进行思考,是提升编程能力的...

    Manning Java Reflection In Action

    无论是对于初学者还是有经验的开发者来说,本书都是学习和掌握Java反射技术不可或缺的宝贵资源。通过阅读本书,不仅可以提高对Java反射的理解,还能激发新的创意和灵感,将反射技术应用于更多创新的场景之中。

    Java学习笔记全部课件和源代码

    9. **反射机制**:理解Java反射API,如何在运行时动态获取类的信息并操作类的对象。 10. **Java应用程序和Web应用**:介绍如何编写Java桌面应用,以及使用Servlet、JSP进行Web开发的基础知识。 源代码部分则提供了...

    Java技术相关文章

    本文将深入探讨Java技术的相关知识点,旨在为初学者和有经验的开发者提供宝贵的资源和学习经验。 1. **Java基础** - **语法特性**:Java是一种面向对象的编程语言,具有静态类型系统和自动内存管理。它的语法简洁...

    达内内网学习笔记 Java SE核心

    达内的内网学习笔记针对Java SE进行了深入讲解,为初学者提供了全面的学习材料。以下是对这些PDF文件中可能涵盖的重要知识点的详细解析: 1. **Java基础语法**: - 变量与数据类型:包括基本数据类型(如int, ...

    面试题总结---javaSE--适用于初学者

    Java是世界上最流行的编程语言之一,尤其在...以上是Java SE面试中常见的知识点,通过这些内容的学习,初学者不仅可以应对面试,还能建立起坚实的Java基础。持续实践和深入理解,将是成为优秀Java开发者的必经之路。

    Java Reflection in Action

    ### Java反射技术实战 #### 一、Java反射技术概述 ...无论是初学者还是经验丰富的开发者,都可以从中获得宝贵的指导和灵感。通过本书的学习,开发者能够更加熟练地掌握Java反射技术,并将其应用于各种复杂的项目中。

    JAVA REFLECTION IN ACTION

    总的来说,《JAVA反射在行动》是一本针对Java反射机制的全面指南,不仅适合初学者入门,也适合有经验的开发者深入研究。通过阅读本书,开发者能够掌握反射的核心概念,学会在实践中灵活运用反射,同时避免潜在的风险...

    java 基础到高级应用

    - 反射:程序运行时获取类的信息并操作类。 - 动态代理:利用反射生成代理类。 - **注解**: - 注解的定义:一种元数据,用于描述其他代码元素。 - 注解处理器:处理编译期间的注解。 #### 三、项目实战与案例...

    学习java基础的好资料

    这份“学习Java基础的好资料”包含了一系列深入浅出的Java知识,对于初学者和经验丰富的开发者来说,都是一个宝贵的资源库。 1. **Java语言基础**: - **语法结构**:了解Java的基本语法,包括数据类型(如整型、...

Global site tag (gtag.js) - Google Analytics