Java反射机制具备的功能:
在运行时判断任意一个对象所属的类。
在运行时构造任意一个类的对象。
在运行时判断任意一个类所具有的成员变量和方法。
在运行时调用任意一个对象的方法
Reflection 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等等)、superclass(例如Object)、实现之interfaces(例如Serializable),也包括fields和methods的所有信息,并可于运行时改变fields内容或调用methods
看例子:InvokeTest.java
package org.kangsg219.Reflection;
import java.lang.reflect.Method;
public class InvokeTest
{
public int add(int a, int b)
{
return a + b;
}
public String hello(String username)
{
return "hello " + username;
}
public static void main(String[] args) throws Exception
{
//正常调用
InvokeTest tester=new InvokeTest();
int addresult=tester.add(10, 20);
System.out.println(addresult);
String msg=tester.hello("kangsg219");
System.out.println(msg);
//通过发射机制来调用
Class<?> classType = InvokeTest.class;
Object invokeTest = classType.newInstance();
// 调用InvokeTester对象的add()方法
Method addMethod = classType.getMethod("add", new Class[] { int.class, int.class });
Object result = addMethod.invoke(invokeTest, new Object[] { new Integer(10), new Integer(20) });
System.out.println((Integer) result);
// 调用InvokeTester对象的hello()方法
Method echoMethod = classType.getMethod("hello", new Class[] { String.class });
result = echoMethod.invoke(invokeTest, new Object[] { "kangsg219" });
System.out.println((String) result);
}
}
运行结果:
30
hello kangsg219
30
hello kangsg219
分享到:
相关推荐
java学习笔记java反射机制
java反射机制
java学习笔记 [Java学习笔记doc]之反射机制
注解和反射机制的学习笔记
这是一年多以来学习java和在项目中遇到问题之后总结出的一系列资料。包含:java 反射机制 流 内存管理等信息。
NULL 博文链接:https://zisefeiniao.iteye.com/blog/381662
轻松掌握java反射技术,虽然讲得比较简单,但是通俗易懂。
Java反射机制总结(实例分析) Java反射机制学习笔记
java反射机制的一些源代码,我学习的笔记,需要的可以下载看看
自己总结的java反射机制的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合java的爱好者和学习者
什么是反射?Java 程序在运行期间可以动态加载、解析和使用一些在编译阶段并不确定的类型数据,这一机制被称为反射(Reflection)。今天我们就来详细探讨下java中的反射
JAVA 反射技术学习笔记
Java学习笔记 初识Java编程、Java基本数据类型、运算符、流程控制、数组、方法、面相对象、Java常用类库、集合、异常处理、多线程、IO流、网络编程、Java的反射机制、泛型、枚举、注解、配置文件操作、发送邮件、...
华为HCDP学习笔记 1 一、华为HCDP IERN学习笔记 1 1、OSPF路由协议基础(OSPF基本配置) 1 2、理解OSPF邻居与邻接关系( OSPF网络类型(NBMA、P2MP)) 2 3、理解OSPF邻居与邻接关系( Virtual Link) 4 4、 理解...
要请求垃圾收集,可以调用下面的方法之一: System.gc() Runtime.getRuntime().gc() 37.String s = new String(\"xyz\");创建了几个String Object? 答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。...
关于Java反射的笔记,在学习java者可以看看
java 学习教学大纲笔记1.熟练掌握Java语言开发环境的配置 2.掌握Java语言的基本语法与编码规范 3.熟练掌握Java基本语法 4.熟练掌握数组的使用 ...11.了解反射机制 12.了解多线程的开发 合成一天 13.了解网络编程
详细介绍java的各项技术以及设计模式,包括动态代理,反射机制,网络编程,多线程等等,里面有详细的实践代码和说明,欢迎下载学习