Java反射机制--是什么,为什么,怎么用。
往往当我们面对一项新的知识时,我们往往需要知道三个方面,它是什么,它能做什么,它比原有知识强在哪里,我们该怎么使用它。当你能够解决这些问题时,便意味着你已经对这项知识入门了。 一、是什么 Java Reflaction in Action有这么一句话,可以解释。反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变。通俗的讲就是反射可以在运行时根据指定的类名获得类的信息。 二、为什么 我们为什么要使用反射,它的作用是什么,它在实际的编程中有什么应用。 首先我们先明确两个概念,静态编译和动态编译。 静态编译:在编译时确定类型,绑定对象,即通过。 动态编译:运行时确定类型,绑定对象。动态编译最大限度发挥了java的灵活性,体现了多 态的应用,有以降低类之间的藕合性。 我们可以明确的看出动态编译的好处,而反射就是运用了动态编译创建对象。 那么我们再来看看实际中反射又有什么好处那? 往往对比能更加直观的向我们展示两者的不同。 先从某个代码案例上来解释(套用一篇博文的一个例子:http://blog.csdn.net/justdoit_potato/article/details/51011843) 若是不用反射,它是这样的 interface fruit{ public abstract void eat(); }