A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© laiminghui 高级黑马   /  2014-4-14 02:11  /  860 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


有哪位大虾  可以讲解一下  使用通俗易懂的  好记住 好理解的讲法...

点评

你这问题已经有很多人提问过了,请仔细阅读版规,否则我们将进行扣分处理  发表于 2014-4-14 16:33

5 个回复

倒序浏览
eflection(反射) 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等等)、superclass(例如Object)、实现interfaces(例如Serializable),也包括fields和methods的所有信息,并可于运行时改变fields内容或调用methods。
例如:

import java.lang.reflect.Method;

public class DumpMethods
{
        public static void main(String[] args) throws Exception
        {
                Class<?> classType = Class.forName(args[0]);
               
                Method[] methods = classType.getDeclaredMethods();
               
                for(Method method : methods)
                {
                        System.out.println(method);
                }
        }
}
回复 使用道具 举报
反射,就是为了搭建一个通用的框架,并不指定具体使用的类,这个框架在没有指定具体类时,其功能无法实现,当别人使用这个框架并指定具体使用类时,通过反射获取别人指定类的字节码、成员等信息,填充框架,从而实现框架功能。
假设搭建的框架为:一种动物,吃饭,发出叫声。在没指定具体动物时,你不可能知道他是啥动物,吃什么饭和叫声是什么。当你指定这个动物为猫时,反射就会将猫进行解析,将猫的字节码加载内存,获取猫的字节码文件,取出吃饭和发生叫声这两个对应动作。这时框架功能就实现了:猫,吃鱼,发出喵喵声。
回复 使用道具 举报
本帖最后由 沫然 于 2014-4-14 16:25 编辑

JAVA反射机制
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。

回复 使用道具 举报
ilvsoft 发表于 2014-4-14 07:05
eflection(反射) 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflec ...

:handshake.........................
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马