第二十七天 正则表达式 反射
1. 正则表达式的介绍
一种专门对字符串进行处理的技术
其实我们刚才写的那个规则[0-9]就是正则表达式
优势,对字符串可以进行更加复杂的操作,比String提供的方法要简单,但是更强大
2. 正则表达式的常见功能
匹配,使用String类的matches(规则),匹配的上,返回真
切割,使用String类的split(规则),返回String类型的数组
替换,使用String类的replaceAll,返回String
3. 正则的查找功能
在正则中,正则也封装成对象 java.uti.regex.Pattern
Pattern类中的静态方法 static Pattern complile(正则规则),预先定义正则规则
Pattern类中的非静态方法 Matcher matcher(CharSequence input) ,预定义的正则规则和字符串匹配
4. 反射 reflect
反射:程序的运行时期,对一个类的字节码文件(class)进行解剖
解剖后,看到字节码文件中定义的内容 成员方法,成员变量,构造方法
可以运行这个方法,成员变量
简单的记:编译时期不知道运行谁,运行时期也不知道运行谁,运行的类和方法,由用户指定
5. 反射相关的东西--类
java是面向对象的语言,class文件也是对象,有一个类,描述这个class文件的,java.lang.Class
构造方法也是一个对象,Constructor类
成员方法也是一个对象,Method类
成员变量也是一个对象,Filed类
6. 获取到一个类的字节码文件对象
getClass()
类名.class
Class.forName() *****
7. 获取字节码文件中的构造方法,并运行
getConstructor(参数)获取构造方法
getConstructors()获取所有public的构造方法,存储数组
getDeclaredConstructor(参数)获取所有的构造方法,非public
Constructor类的 newInstance()运行获取到的构造方法
8. 获取成员方法并运行
getMethods()获取成员方法,存储数组
getMethod(方法名,参数列表)
getDeclaredMethod(方法名,参数列表)
Method类的 invoke(对象,方法的参数)
9. 获取成员变量并改值
10. 使用反射技术,让用户指定运行哪一个类,和哪一个方法 *****
反射技术
Class Method Constructor
IO技术
FileReader
配置文件技术 Properties
load(字符读取流)
11. 使用反射技术,绕过编译器检查,将不同的数据类型,存储到带有固定泛型的集合中