Skip to content

Commit 0027bee

Browse files
committed
补充反射内容
1 parent 56038e2 commit 0027bee

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

README.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@
122122
-- 静态加载就是编译时加载,此时将进行类型检查,变量需满足理论的数据类型
123123
-- 动态加载就是运行时加载,发生在编译后,此时才真正能确定对象的确切类型
124124
-- 编译时刻加载类是静态加载类,运行时刻加载类是动态加载类。new创建对象是静态加载类,在编译时刻就要加载所有可能用到的类,这样导致某一个类(的类型)出现问题,其他所有类都将无法使用(无法通过编译)。通过反射可以实现动态加载类解决这个问题。动态加载的方法,即通过类的类类型创建该类的对象
125+
-- Java反射机制允许程序在运行时透过Reflection APIs取得任意一个已知名称的class的内部信息,包括modifiers(如public、static等)、superclass(如Object)、实现的interfaces(如Serializable)、fields(属性)和methods(方法)(但不包括methods定义),可于运行时改变fields的内容,也可调用methods
125126
-- 反射api:
126127
-- 获取类:Class c=Class.forName("Alunbar");c.newInstance();
127128
-- 获取类的方法信息,代码示例:Class c=obj.getClass();Method[] ms=c.getMethods();//参数列表获取省略
@@ -130,8 +131,8 @@
130131
-- 方法的反射调用,操作步骤:
131132
1、根据方法的名称和参数列表获取唯一的方法;
132133
2、拿到方法后,method.invoke(对象,参数列表)。
133-
-- 小结:Java反射机制允许程序在运行时透过Reflection APIs取得任意一个已知名称的class的内部信息,包括modifiers(如public、static等)、superclass(如Object)、实现的interfaces(如Serializable)、fields(属性)和methods(方法)(但不包括methods定义),可于运行时改变fields的内容,也可调用methods.
134134
-- 配置文件 + 反射机制 实现开闭原则:在引入配置文件和反射机制后,需要更换或增加新的具体类将变得很简单,只需增加新的具体类并修改配置文件即可,无须对现有类库和客户端代码进行任何修改,完全符合开闭原则。在很多设计模式中都可以通过引入配置文件和反射机制来对客户端代码进行改进,如在抽象工厂模式中可以将具体工厂类类名存储在配置文件中,在适配器模式中可以将适配器类类名存储在配置文件中,在策略模式中可以将具体策略类类名存储在配置文件中等等。通过对代码的改进,可以让系统具有更好的扩展性和灵活性,更加满足各种面向对象设计原则的要求。
135+
-- 小结:代码是现实世界的抽象,由于世界复杂的本质,注定不会有银弹。而java的反射机制为java提供一种编写足够抽象代码的手段
135136
·注解:
136137
在编码过程中,为了更好的理解程序,我们通常会加上注释代码,这样可以方便程序员理解。而注解就是注释的一种,但是与一般的注释不同的是,注解需要按一定规则编写(见自定义注解),并且注解可以被程序解析,并根据解析结果进行相应处理。如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。
137138
·元数据:指用来描述数据的数据。

专题/设计模式在java与js中不同的表现形式.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
②java中函数必须依附于对象而存在。而js中,函数是一等公民。
88

99
·鸭子类型思想:
10-
一只鸡走起路来像鸭子,叫起来像鸭子,那么它就是鸭子。
10+
一只鸡走起路来像鸭子,叫起来像鸭子,那么它就是鸭子。
1111
这就是动态语言的思想,即不在乎变量的类型,只在乎它能做什么,所以js不会有编译时类型检查的过程。
1212

1313
·多态与面向接口编程:

0 commit comments

Comments
 (0)