社区
Java SE
帖子详情
请问JAVA的反射机制有什么用?
Ly_uu
2006-12-14 08:29:57
最近在看JAVA的反射机制,不过想来想去都不知道在实践工作中有什么用或用在那里,所以想请教一下各位知不知道呢?
...全文
321
7
打赏
收藏
请问JAVA的反射机制有什么用?
最近在看JAVA的反射机制,不过想来想去都不知道在实践工作中有什么用或用在那里,所以想请教一下各位知不知道呢?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
galant2008
2006-12-14
打赏
举报
回复
反射也就是说,在编译时,你获取了一个指向某个并不存在你的程序空间中的对象的引用;
事实上在编译时你的程序无法获知这个对象所属的类.
java附带的库java.lang.reflect包含了FIeld,Method,Constructor类.这些类型的对象
是由jvm在运行时创建的,用以表示未知类里对应的成员.你就可以使用Constructor创建
新的对象,用get()和set()方法读取和修改与Field对象关联的字段,用invoke()方法调用
与Method对象关联的方法.
反射常用在类的反向控制,例如AOP
建议楼主去查查api
aChinese
2006-12-14
打赏
举报
回复
写工具用, 比如IDE为什么能代码提示, 就是能通过反射分析你写的类
junit777
2006-12-14
打赏
举报
回复
可以反射地方射来的箭矢,减低伤害
wanguanghai
2006-12-14
打赏
举报
回复
import java.lang.reflect.*;
public class DumpMethods {
public static void main(String args[]) {
try {
Class c = Class.forName(args[0]);
Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());
} catch (Throwable e) {
System.err.println(e);
}
}
}
按如下语句执行:
java DumpMethods java.util.Stack
它的结果输出为:
public java.lang.Object java.util.Stack.push(java.lang.Object)
public synchronized java.lang.Object java.util.Stack.pop()
public synchronized java.lang.Object java.util.Stack.peek()
public boolean java.util.Stack.empty()
public synchronized int java.util.Stack.search(java.lang.Object)
这样就列出了java.util.Stack 类的各方法名以及它们的限制符和返回类型。
这个程序使用 Class.forName 载入指定的类,然后调用 getDeclaredMethods 来获取这个类中定义了的方法列表。java.lang.reflect.Methods 是用来描述某个类中单个方法的一个类。
wanguanghai
2006-12-14
打赏
举报
回复
反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。
十分钟年华老去
2006-12-14
打赏
举报
回复
想是想不出来的,等要用到了的时候你就知道有多有用了。所以现在看不懂也不要紧
已经存在
2006-12-14
打赏
举报
回复
反射的作用太大了,最大的感受时,利用反射可以写出非常精简的而且通用的东西
MySQL知识回顾学习
mysql回顾
[网络安全自学篇] 十四.Python攻防之基础常识、正则表达式、Web编程和套接字通信(一)
这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步。前文分享了Wireshark抓包原理知识,并结合NetworkMiner工具抓取了图像资源和用户名密码,本文将讲解Python网络攻防相关基础知识,包括正则表达式、Web编程和套接字通信。本文参考了爱春秋ADO老师的课程内容,这里也推荐大家观看他Bilibili和ichunqiu的课程,同时也结合了作者之前的经验进行讲解。
网络实验避坑指南:为什么你的MAC ACL配置了却不起作用?5个常见错误排查
本文深入解析MAC ACL配置失效的五大常见原因,包括方向选择、MAC地址格式、规则顺序、模拟器特性和ARP缓存问题,并提供工业级排查方案和实战验证技巧,帮助网络工程师精准控制二层流量。
[网络安全自学篇] 二十六.Shodan搜索引擎详解及Python命令行调用
这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步。前文分享了Web安全学习路线,并实现了最简单的木马和病毒代码。这篇文章将详细讲述Shodan搜索引擎的基本用法及Python命令行,具体内容包括Shodan获取指定IP地址信息、Shodan获取账号信息、Shodan获取自身外部IP地址、Shodan检测是否有蜜罐等。
从零开始学 Linux:从环境搭建到核心命令全攻略
建议收藏!!本文是一份从零开始的 Linux 学习全攻略,涵盖环境搭建(VMware + CentOS 7)、核心命令(文件操作、查找过滤、权限管理)、vi/vim 编辑器、Shell 脚本入门及常见问题排查。全文以实战为导向,每个命令都配有详细示例,适合后端开发、运维、数据分析等方向的初学者快速上手。
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章