package com.tong;
import java.lang.reflect.Method;
public class Test {
public static void main(String[] args) {
try {
//反射耗时
long reflectStart = System.currentTimeMillis();
Class clazz = Class.forName("com.tong.Users");
Users users = (Users) clazz.getConstructor(null).newInstance();
Method method = clazz.getMethod("setUsername", String.class);
//忽略安全检查
method.setAccessible(true);
for(int i=0;i<100000000;i++){
method.invoke(users,"Oldlu");
}
long reflectEnd = System.currentTimeMillis();
//非反射方式的耗时
long start = System.currentTimeMillis();
Users users1 = new Users();
for(int i=0;i<100000000;i++){
users1.setUsername("oldlu");
}
long end = System.currentTimeMillis();
System.out.println("反射执行时间:"+(reflectEnd - reflectStart));
System.out.println("普通方法执行时间:"+(end-start));
} catch (Exception e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基础深化和提高-java反射技术
共40个文件
class:15个
java:14个
xml:9个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 143 浏览量
2023-11-11
19:43:24
上传
评论
收藏 29KB RAR 举报
温馨提示
Java反射技术指的是在运行时动态地获取类的信息、调用对象的方法、操作类的属性等能力。通过反射,程序可以在运行时检查类、实例化对象、调用方法、获取和设置属性,甚至可以动态修改类的结构。 Java反射技术的核心在于java.lang.reflect包,它提供了一系列类和接口,用于在运行时获取关于类和对象的信息,并进行相应的操作。主要的类和接口包括Class、Method、Field、Constructor等。 以下是Java反射技术的一些常见应用: 获取类的信息:通过反射可以获取类的名称、父类、接口、方法、字段等信息。 实例化对象:通过反射可以实例化一个类的对象,即使在编译时并不知道具体的类名。 调用方法:通过反射可以动态调用对象的方法,包括公有方法、私有方法等。 操作字段:通过反射可以获取和设置对象的字段值,包括公有字段、私有字段等。 动态代理:通过反射可以创建动态代理对象,用于实现特定的代理逻辑。 框架和工具:在很多框架和工具中,如Spring框架、JUnit测试框架等,都广泛使用了反射技术,用于实现灵活的配置和扩展。 虽然反射技术提供了很大的灵活性,但由于其涉及到
资源推荐
资源详情
资源评论
收起资源包目录
反射技术.rar (40个子文件)
反射技术
javareflect
src
com
tong
GetConstructor2.java 560B
GetClass1.java 430B
GetClass2.java 374B
GetClass3.java 359B
GetField2.java 507B
Test2.java 674B
GetField.java 892B
GetClassInfo.java 739B
Users.java 1KB
GetMethod.java 1002B
GetMethod2.java 597B
Test.java 1KB
GetConstructor.java 948B
ReflectDemo.java 1KB
out
production
javareflect
com
itbaizhan
GetField.class 1KB
Test.class 2KB
GetClass2.class 857B
GetConstructor.class 1KB
GetConstructor2.class 1KB
GetClass3.class 971B
Users.class 2KB
GetMethod2.class 1KB
GetClassInfo.class 1KB
Reflect.class 721B
Test2.class 2KB
GetField2.class 1KB
ReflectDemo.class 1KB
GetClass1.class 981B
GetMethod.class 2KB
.idea
uiDesigner.xml 9KB
checkstyleidea.tmp
qaplug_profiles.xml 41KB
runConfigurations.xml 346B
workspace.xml 5KB
misc.xml 624B
inspectionProfiles
Project_Default.xml 1KB
checkstyle-idea.xml 626B
modules.xml 269B
.gitignore 0B
aws.xml 304B
javareflect.iml 559B
共 40 条
- 1
资源评论
童小纯
- 粉丝: 3w+
- 资源: 289
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功