什么用于反思? (例如Java Reflection API)

可能重复:
什么是反思,为什么它有用?

所以最近我一直在使用Reflection API,而且在这里和那里搞得一团糟似乎很酷,但究竟是什么使用它呢?

你会发现,获取字段/方法名称和返回类型以及设置可访问性和什么是非常有趣的,但是如果你可以用自己的眼睛阅读java文件/类,那么这个[反射]怎么可能有任何用处呢?

也许我真的很无知,或者我不明白这个Reflection的完整概念,但是你能向我解释这可能会有帮助吗?


有时你想拥有一个可以处理任何数据类型的库,而无需读取类文件。

如序列化,数据库连接框架,依赖注入框架,使用注释的框架。


反射与泛型一起使用。 这样一块代码就可以处理多种类型的对象。

当你不一定有权访问java文件,但希望知道某些特定的内容时(通常是排除故障),也可以使用它。


我用它来从我没有访问权限的对象生成键和值。

所以,如果你有一个庞大的代码库和一个团队“拥有”你需要使用的类,但它确实是一成不变的。 也就是说,没有进一步的改变,你真的需要将它转换成你自己的格式,而不是手动操作,这是令人厌烦的,所以你可以做的是获得字段名称和它的价值,并根据你的规则把它放在你的自己的对象。

链接地址: http://www.djcxy.com/p/47615.html

上一篇: What are uses for reflection? (e.g the Java Reflection API)

下一篇: Programming with Core JAVA