博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ReflectASM的使用
阅读量:6816 次
发布时间:2019-06-26

本文共 1807 字,大约阅读时间需要 6 分钟。

hot3.png

1.测试类
public class Test {	public static void main(String[] args) {				//------------------------------------------------------		Person p = new Person();		MethodAccess access = MethodAccess.get(Person.class);		int setNameIndex = access.getIndex("setName");		access.invoke(p, setNameIndex, "Awesome McLovin");		int getNameIndex = access.getIndex("getName");		String name = (String) access.invoke(p, getNameIndex);		System.out.println(name);				//------------------------------------------------------		Person p1 = new Person();		FieldAccess access1 = FieldAccess.get(Person.class);		int nameIndex = access1.getIndex("name");		access1.set(p1, nameIndex, "Awesome McLovin");		String name1 = (String) access1.get(p1, nameIndex);		System.out.println(name1);				//------------------------------------------------------		ConstructorAccess
access2 = ConstructorAccess.get(Person.class); Person p2 = access2.newInstance(); System.out.println(p2); }}

2.Person类

package com.hxrainbow.reflect;public class Person {	private int id;	public String name;	private int age;	private String address;		public int getId() {		return id;	}	public void setId(int id) {		this.id = id;	}	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public int getAge() {		return age;	}	public void setAge(int age) {		this.age = age;	}	public String getAddress() {		return address;	}	public void setAddress(String address) {		this.address = address;	}		}

3.当有方法重载时,会有问题,可以这样来解决:

在Person类中加入方法重载:

public String getName(String name1) {	System.out.println("===========");	return name;}

调用此方法:

int getNameIndex = access.getIndex("getName",String.class);String name = (String) access.invoke(p, getNameIndex,"11");System.out.println(name);

转载于:https://my.oschina.net/xishuixixia/blog/83168

你可能感兴趣的文章
C指针函数中的局部变量返回
查看>>
android 解析json数据格式
查看>>
Vs2013 头文件注释
查看>>
****** 六 ******、软设笔记【数据结构】-查找、静态查找表,哈希表
查看>>
[转] fitnesse中的Map处理
查看>>
Django博客功能实现—文章评论的显示
查看>>
JavaScript类型转换
查看>>
OnClientClick="return confirm('确定要删除吗?')"
查看>>
四则运算使用说明
查看>>
字符数组中查找字符串或字符数组
查看>>
JAVA自己理解的几种设计模式
查看>>
Android 不显示光标或者光标颜色为白色的解决方法
查看>>
C#网络编程之---TCP协议的同步通信(二)
查看>>
thinkphp-许愿墙-3
查看>>
linux awk时间计算脚本
查看>>
CodeBlocks卸载后重装 编译c文件提示错误信息“No such file or directory”
查看>>
jQuery查找子元素与后代元素
查看>>
springboot更换日志系统
查看>>
Python中if __name__ == "__main__"是什么作用
查看>>
实验一
查看>>