Java反射机制DOME
Java反射机制
public class TestHibernate {
@Test
public void TestHb(){
try {
Class cs = Class.forName("testHibernate.Test1"); //classload 类
Object oj = cs.newInstance(); //通过类NEW一个对象
Method[] mt = cs.getMethods(); //获取所有方法
for (Method method : mt) { //轮询出所有函数方法
if(method.getName()=="m13"){ //通过函数名判断函数
method.invoke(oj,1,2);
for(Class parameter:method.getParameterTypes()){ //轮询出函数方法的参数
System.out.println(parameter.getName()); //获取参数类型
}
System.out.println("返回值"+method.getReturnType()); //获取返回值类型
}else if(method.getName()=="m12"){
method.invoke(oj); //执行函数方法无参
}else if(method.getName()=="getmeth"){
System.out.println("123"+method.getReturnType());
Object object = method.invoke(oj); //获取函数方法返回的类对象
Class ccc = object.getClass(); //通过类对象获得类
Field ff = ccc.getField("x2"); //获取变量对象
int x1 = (int)ff.get(object); //获取属性值
//getDeclaredMethod可获取私有方法
Method met = ccc.getDeclaredMethod("xxx",new Class[]{int.class,int.class}); met.setAccessible(true);//设置可成 可访问
Object i = met.invoke(object, x1,2);//调用带参函数方法
System.out.println(i+"xxxxxxxxxxxxxxxxxxxxxxxxxx");
} }
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | SecurityException | NoSuchMethodException | NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class Test2{
static{
System.out.println("classLoad test2");
}
public int x2 = 3;
private int xxx(int x1,int x2){
return x1*x2;
}
}
class Test1{
static{
System.out.println("classLoad test1");
}
{
System.out.println("new objcet tset1");
} public Test2 getmeth(){
return new Test2();
}
public void m12(){
System.out.println("m12");
}
public String m13(int b,int r){
System.out.println(b+r);
return b+r+"";
}
}
本dome为学习测试使用的
Java反射机制
public class TestHibernate {
@Test
public void TestHb(){
try {
Class cs = Class.forName("testHibernate.Test1"); //classload 类
Object oj = cs.newInstance(); //通过类NEW一个对象
Method[] mt = cs.getMethods(); //获取所有方法
for (Method method : mt) { //轮询出所有函数方法
if(method.getName()=="m13"){ //通过函数名判断函数
method.invoke(oj,1,2);
for(Class parameter:method.getParameterTypes()){ //轮询出函数方法的参数
System.out.println(parameter.getName()); //获取参数类型
}
System.out.println("返回值"+method.getReturnType()); //获取返回值类型
}else if(method.getName()=="m12"){
method.invoke(oj); //执行函数方法无参
}else if(method.getName()=="getmeth"){
System.out.println("123"+method.getReturnType());
Object object = method.invoke(oj); //获取函数方法返回的类对象
Class ccc = object.getClass(); //通过类对象获得类
Field ff = ccc.getField("x2"); //获取变量对象
int x1 = (int)ff.get(object); //获取属性值
//getDeclaredMethod可获取私有方法
Method met = ccc.getDeclaredMethod("xxx",new Class[]{int.class,int.class});
met.setAccessible(true);//设置可成 可访问
Object i = met.invoke(object, x1,2);//调用带参函数方法
System.out.println(i+"xxxxxxxxxxxxxxxxxxxxxxxxxx");
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | SecurityException | NoSuchMethodException | NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class Test2{
static{
System.out.println("classLoad test2");
}
public int x2 = 3;
private int xxx(int x1,int x2){
return x1*x2;
}
}
class Test1{
static{
System.out.println("classLoad test1");
}
{
System.out.println("new objcet tset1");
}
public Test2 getmeth(){
return new Test2();
}
public void m12(){
System.out.println("m12");
}
public String m13(int b,int r){
System.out.println(b+r);
return b+r+"";
}
}
Java反射机制DOME的更多相关文章
- 第28章 java反射机制
java反射机制 1.类加载机制 1.1.jvm和类 运行Java程序:java 带有main方法的类名 之后java会启动jvm,并加载字节码(字节码就是一个类在内存空间的状态) 当调用java命令 ...
- Java反射机制
Java反射机制 一:什么事反射机制 简单地说,就是程序运行时能够通过反射的到类的所有信息,只需要获得类名,方法名,属性名. 二:为什么要用反射: 静态编译:在编译时确定类型,绑定对象,即通过 ...
- java基础知识(十一)java反射机制(上)
java.lang.Class类详解 java Class类详解 一.class类 Class类是java语言定义的特定类的实现,在java中每个类都有一个相应的Class对象,以便java程序运行时 ...
- java基础知识(十一)java反射机制(下)
1.什么是反射机制? java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象都能够调用他的属性和方法,这种动态获取属性和方法的功能称为java的反射机制. ...
- Java反射机制专题
·Java Reflection Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方 ...
- java反射机制深入详解
java反射机制深入详解 转自:http://www.cnblogs.com/hxsyl/archive/2013/03/23/2977593.html 一.概念 反射就是把Java的各种成分映射成 ...
- 反射——Java反射机制
反射概述 什么是反射? ① 反射的概念是由Smith在1982年首次提出的,主要指程序可以访问.检测和修改它本身状态或行为的一种能力. ② JAVA反射机制是在运行状态中,对应任意一个类,都能 ...
- Java反射机制可以动态修改实例中final修饰的成员变量吗?
问题:Java反射机制可以动态修改实例中final修饰的成员变量吗? 回答是分两种情况的. 1. 当final修饰的成员变量在定义的时候就初始化了值,那么java反射机制就已经不能动态修改它的值了. ...
- Java反射机制学习与研究
Java反射机制:可以获取正在运行时的Java对象. 1.判断运行时对象对象所属的类. 2.判断运行时对象所具有的成员变量和方法. 3.还可以调用到private方法,改变private变量的值. S ...
随机推荐
- const指针
const指针这个问题,复习了好多次,每次看书的时候明白,但是过了一段时间之后没用,总会再次被搞糊涂. 那么今天就把这个问题先用代码实现,把自己理解的写下来.代码在下面: ; ; const int* ...
- 安装Nginx的Dockerfile实例
#################################################Dockerfile to build Nginx Installed Containers##Bas ...
- 统计一下ie的一些问题(什么时候遇到什么时候更新)
1.document.createElement问题 问题描述:在用ASP.NET的时候,通常我们需要注册脚本,通常是以这种形式发送到客户端: <script type="text/j ...
- NOIp 2011 mayan游戏 搜索
题目描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个 7 行5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指在规定 ...
- 关于VR边纹理材质的渲染
前段时间经常渲染白模线框的图,写了这个脚本方便工作,后来又加了中英文适配,今天贴上来. fn YY_edgestex = ( vr = renderers.current case of ( (vr材 ...
- Servlet执行流程和生命周期【慕课网搬】
Servlet执行流程(GET方式为例) 首先用户客户端浏览器发出Get方式(点击超链接方式)向浏览器发出请求. 服务器接收到客户端点击超链接,接收到GET请求之后,服务器到WEB.xml中<s ...
- gui2
事件:描述发生了什么的对象. 存在各种不同类型的事件类用来描述各种类型的用户交互. 事件源:事件的产生器. 事件处理器:接收事件.解释事件并处理用户交互的方法. 比如在Button组件上点击鼠标会产生 ...
- bootstrap学习
1. bootstrap使用了less作为预编译器,他是结构清晰层次分明的css页面构建样式,即使你不喜欢bootstrap的样式,你仍然可以借鉴bootstrap编写css的这种方式 2.boots ...
- 打造完美的xml技术解决方案(dom4j/xstream)
转: XML 技术是随着 Java 的发展而发展起来的.在 XML 出现之前对于简单的数据格式通常是存储在 ini 配置文件等文本文件中,复杂的格式则采用自定义的文件格式,因此对于每种文件格式都要有专 ...
- 得到APP【每天听本书】微信交流群(每天更新)
得到APP[每天听本书]微信交流群,每天更新下载学习资料 添加个人微信号:zhidu10000 进入微信群. “坚持每天读一本书,每天进步1.01,每年进步37.8倍” 2016年书单合辑点此链接,查 ...