非常easy的JAVA反射教程

原创文章,转载请注明。

反射能够动态载入类,实例化对象,调用方法。如今以下面样例解说。

一。载入类。

Class clazz = Class.forName("java.lang.String"); //此句代码得到一个String类的类对象。

參数填包名。

若通过URLClassLoader 。能够载入本地或远程的jar包。而且通过loadclass方法得到详细的类对象。

二,实例化对象。

假设通过默认构造函数来实例化对象,我们可用类对象的例如以下方法得到一个对象,如

clazz..newInstance();

假设通过带參数的构造函数来实例化对象,则能够通过例如以下代码达成:

Constructor<?

> myConstructor = myClass.getConstructor(parameterTypes);//得到一个构造器对象。

当中parameterTypes 为 Class<?

>... parameterTypes。比如 String.class,int.class等等。接着通过构造器对象得到实例化对象:

myConstructor.newInstance("xxx",123);构造器内填入详细的构造參数。

三。调用方法。

Method mezod = clazz.getMethod(methodName, parameterTypes);能够得到方法类的对象,然后我们能够通过mezod的invoke方法运行方法。

mezod.invoke(obj,"xxx",123);//第一个參数为此方法的发起对象,若填null则说明调用的是静态static方法。

时间: 2024-10-13 01:08:41

非常easy的JAVA反射教程的相关文章

超详细的java反射教程

看技术博客时,看到关于java反射的博文,写的非常好.猛击下面的地址,开始java反射之旅 中文翻译地址:http://ifeve.com/java-reflection/ 英文原版地址:http://tutorials.jenkov.com/java-reflection/index.html

java反射教程

什么是反射,为什么它是有用的,以及如何使用它? 1.什么是反射? "反射通常是JVM中运行的程序需要检测和修改运行时程序的行为的一种能力."这个概念通常与内省(Introspection)混淆.以下是这两个术语在维基百科中的定义: 内省是指计算机程序在运行时检查对象类型的一种能力,通常也可以称作运行时类型检查. 反射是指计算机程序在运行时可以访问.检测和修改它本身状态或行为的一种能力. 从他们的定义可以看出,内省是反射的一个子集.有些语言支持内省,但不支持反射,如C++. 内省例子:i

Java注解教程:自定义注解示例,利用反射进行解析

Java注解能够提供代码的相关信息,同时对于所注解的代码结构又没有直接影响.在这篇教程中,我们将学习Java注解,如何编写自定义注解,注解的使用,以及如何使用反射解析注解. 注解是Java 1.5引入的,目前已被广泛应用于各种Java框架,如Hibernate,Jersey,Spring.注解相当于是一种嵌入在程序中的元数据,可以使用注解解析工具或编译器对其进行解析,也可以指定注解在编译期或运行期有效. 在注解诞生之前,程序的元数据存在的形式仅限于java注释或javadoc,但注解可以提供更多

《Java基础教程完整版》电子版书正式发布,欢迎大家免费下载

截止目前,Java系列教程已更新完毕.内容覆盖了:JavaSE基本知识点.UML建模.单元测试等.希望对想学习Java语言的朋友能够提供帮助.在编写的过程中,难免会出现一些错误,希望大家能多多提些意见. 由于本书都是从笔者CSDN博客中摘抄过来的,基本没有经过什么正规的校验,所以难免会出现一些不对的地方.欢迎各位大牛对本书提出批评. 作者博客:http://blog.csdn.net/lhy_ycu 作者邮箱:[email protected] 笔者声明:该电子书由ITeye提供电子书DIY功能

Java反射机制的原理及在Android下的简单应用

花了几天时间,研究了一下Java的反射机制.在这里总结一下这几天学习的成果,一来分享自己的学习过程和在学习中遇到的问题,二来是给像我一样不太了解Java反射机制的同学做一个简单的介绍.在文章后面会链接一个Android反射机制的应用程序. 一.反射的概念及在Java中的类反射 反射主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.在计算机科学领域,反射是一类应用,它们能够自描述和自控制.这类应用通过某种机制来实现对自己行为的描述和检测,并能根据自身行为的状态和结果,调整或修改应用所描述

java反射 一些理解

JAVA反射机制 什么是反射: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制.   条件: JAVA反射(放射)机制:"程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言".从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言.但是JAVA有着一个非常突出的动态相关机制:Reflec

Java Reflection 教程

转载自 并发编程网 – ifeve.com Java反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)检查类,接口,变量以及方法的信息.反射还可以让我们在运行期实例化对象,调用方法,通过调用get/set方法获取变量的值. Java反射机制功能强大而且非常实用.举个例子,你可以用反射机制把Java对象映射到数据库表,就像Butterfly Persistence(译者注:原作者所编写的框架)所做的那样,或者把脚本中的一段语句在运行期映射到相应的对象调用方法上,就

Java进阶 四 Java反射TypeToken解决泛型运行时类型擦除问题

在开发时,遇到了下面这条语句,不懂,然习之. private List<MyZhuiHaoDetailModel> listLottery = new ArrayList<MyZhuiHaoDetailModel>(); Gson gson=new Gson(); JSONObject object=new JSONObject(callbackValue); listLottery =  gson.fromJson(object.getString("lists&quo

Java进阶 六 Java反射机制可恶问题NoSuchFieldException

作为一种重要特性,Java反射机制在很多地方会用到.在此做一小结,供朋友们参考. 首先从一个问题开始着手. 可恶的问题又来了,NoSuchFieldException,如下图所示: 完全不知道这个question是从哪里来的.以前也遇到过这样的问题,后来解决了,但是没有写文档,再次相遇这样的问题,傻了. 经过上网一番查找,发现遇到这个问题的小盆友还真不少,这个问题是属于java反射机制里的. 这是一个反射对象时候的异常,已经被捕获了的.这个报错代码是混淆了的,是不是这个question对象被混淆