java反射使用示例分享
public class ReflexTest {
public static void main(String[] args)
throws ClassNotFoundException, NoSuchMethodException, SecurityException,
IllegalAccessException, IllegalArgumentException, InvocationTargetException,
InstantiationException {
//参数类型
Class[] paramTypes = new Class[3];
paramTypes[0] = String.class;
paramTypes[1] = Integer.class;
paramTypes[2] = String.class;
//取得方法
Method m = Demo.class.getDeclaredMethod("getSome", paramTypes);
//参数设置
Object[] os = new Object[3];
os[0] = "pp";
os[1] = 4;
os[2] = "3";
//方法调用
m.invoke(Demo.class.newInstance(), os);
}
}
class Demo{
public void getSome(String name,Integer year, String age){
System.out.println("name is :" + name + ";age is :" + age + ";i is :" + year);
}
}
相关推荐
-
Java中反射的一个简单使用
简介 首先介绍一些不太实用的解释:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制. 简单使用 反射,在java中是非常常见和好用的一种方式,(但是大家需要知道,他的效率是比较低的,所以要慎用)当然在基于java语言而产生的Android中也是可以使用的,我们可以使用反射来获取一些系统并不开放,但是存在的类,从而调用他的一些方法,下面就简单的写一下
-
基于Java回顾之反射的使用分析
反射可以帮助我们查看指定类型中的信息.创建类型的实例,调用类型的方法.我们平时使用框架,例如Spring.EJB.Hibernate等都大量的使用了反射技术.反射简单示例 下面来演示反射相关的基本操作 首先是基础代码,我们定义一个接口及其实现,作为我们反射操作的目标: 复制代码 代码如下: interface HelloWorldService { void sayHello(String name); } class MyHelloWorld implements HelloWorld
-
Java反射机制及Method.invoke详解
JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类:在运行时构造任意一个类的对象:在运行时判断任意一个类所具有的成员变量和方法:在运行时调用任意一个对象的方法:生成动态代理. 1. 得到某个对象的属性 复制代码 代码如下: public Object get
-
实例讲解Java编程中数组反射的使用方法
什么是反射 "反射(Reflection)能够让运行于JVM中的程序检测和修改运行时的行为."这个概念常常会和内省(Introspection)混淆,以下是这两个术语在Wikipedia中的解释: 内省用于在运行时检测某个对象的类型和其包含的属性: 反射用于在运行时检测和修改某个对象的结构及其行为. 从它们的定义可以看出,内省是反射的一个子集.有些语言支持内省,但并不支持反射,如C++. 内省示例:instanceof 运算符用于检测某个对象是否属于特定的类. if (obj inst
-
java根据方法名称取得反射方法的参数类型示例
复制代码 代码如下: /** * 根据方法名称取得反射方法的参数类型(没有考虑同名重载方法使用时注意) * @param obj 类实例 * @param methodName 方法名 * @return * @throws ClassNotFoundException */public static Class[] getMethodParamTypes(Object classInstance, String methodName) throws ClassNotF
-
java类加载器和类反射使用示例
一.一个命令对应一个进程. 当我们启动一个Java程序,即启动一个main方法时,都将启动一个Java虚拟机进程,不管这个进程有多么复杂.而不同的JVM进程之间是不会相互影响的.这也就是为什么说,Java程序只有一个入口--main方法,让虚拟机调用.而两个mian方法,对应的是2个JVM进程,启动的是两个不同的类加载器,操作的实际上是不同的类.故而不会互相影响. 二.类加载. 当我们使用一个类,如果这个类还未加载到内存中,系统会通过加载.连接.初始化对类进行初始化. 1.类加载:指的是将类的c
-
java使用dom4j解析xml配置文件实现抽象工厂反射示例
逻辑描述: 现在我们想在B层和D层加上接口层,并使用工厂.而我们可以将创建B和创建D看作是两个系列,然后就可以使用抽象工厂进行创建了. 配置文件:beans-config.xml.service-class与dao-class分别对应两个系列的产品.子菜单中id对应接口的命名空间,class对应实现类的命名空间. 复制代码 代码如下: [html] view plaincopyprint? <?xml version="1.0" encoding="UTF-8"
-
JAVA反射机制实例教程
本文以实例形式详细讲述了Java的反射机制,是Java程序设计中重要的技巧.分享给大家供大家参考.具体分析如下: 首先,Reflection是Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说"自审",并能直接操作程序的内部属性.例如,使用它能获得 Java 类中各成员的名称并显示出来. Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性.例如,Pascal.C 或者 C++ 中就没有办法在程序中获得函数
-
Java 反射获取类详细信息的常用方法总结
类ReflectionDemo 复制代码 代码如下: package Reflection; @Deprecated public class ReflectionDemo { private String pri_field; public String pub_field; public ReflectionDemo(){} public ReflectionDemo(String name){} private ReflectionDemo(Stri
-
java反射技术与类使用示例
复制代码 代码如下: package com.java.db;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.Arrays;import java.util.
随机推荐
- 戏说编码发展史
- 重命名批处理python脚本
- sqlserver中delete、update中使用表别名和oracle的区别
- .net出现80080005错误的解决办法分享
- javascript 在firebug调试时用console.log的方法
- ASP.NET 多次提交的解决办法
- C++中用指向数组的指针作函数参数
- Powershell小技巧之获取对象可变的特征
- IIS 6.0 安装与网站架设教程[图文]
- 利用微软com组件mstscax.dll实现window7远程桌面功能
- windows服务器维护经验小结(rsync,serv_u)
- java swing编程入门代码编写(java编程入门)
- 详解IOS四种保存数据的方式
- Android中使用achartengine生成图表的具体方法
- .CM域名8月1日正式开放注册
- 浅谈Vue.js中ref ($refs)用法举例总结
- Laravel admin实现消息提醒、播放音频功能
- Nuxt.js之自动路由原理的实现方法
- Python如何使用Gitlab API实现批量的合并分支
- Springboot通过url访问本地图片代码实例