day22
反射
反射操作属性
字段 getDeclaredField(String name) 返回 字段对象,该对象反映此 类对象表示的类或接口的指定声明字段。 字段[] getDeclaredFields() 返回 字段对象的数组, 字段对象反映由此 类对象表示的类或接口声明的所有字段。 字段 getField(String name) 返回 字段对象,该对象反映此 类对象表示的类或接口的指定公共成员字段。 字段[] getFields() 返回一个包含 字段对象的数组, 字段对象反映此 类对象所表示的类或接口的所有可访问公共字段
反射操作方法
方法 getMethod(String name, 类<?>... parameterTypes) 返回 方法对象,该对象反映此 类对象表示的类或接口的指定公共成员方法。 方法[] getMethods() 返回一个包含 方法对象的数组, 方法对象反映此 类对象所表示的类或接口的所有公共方法,包括由类或接口声明的那些以及从超类和超接口继承的那些。 方法 getDeclaredMethod(String name, 类<?>... parameterTypes) 返回 方法对象,该对象反映此 类对象表示的类或接口的指定声明方法。 方法[] getDeclaredMethods() 返回一个包含 方法对象的数组, 方法对象反映此 类对象表示的类或接口的所有已声明方法,包括public,protected,default(package)访问和私有方法,但不包括继承的方法。
方法的调用
Object invoke(Object obj, Object... args) 执行当前方法对象 通过参数1调用(成员方法) 返回值:所调用执行方法的返回值
反射操作数组
创建数组 : static Object newInstance(类<?> componentType, int length) 创建具有指定组件类型和长度的新数组。
为数组赋值 : static void set(Object array, int index, Object value) 将指定数组对象的索引组件的值设置为指定的新值。
获取数组中的数据 : static Object get(Object array, int index) 返回指定数组对象中索引组件的值。
正则表达式
正则表达式是用来描述具有一定特征的字符串的特殊字符串。Regular Expression。
作用: 验证、查找、替换、分割 。
0211 正则.pdf
注解: 标注
在jdk5之后引入了注解机制
注释
标志|标识 注解可以配置参数信息 通过反射获取到配置的信息|获取到注解在程序中进行使用 可以存在与编译后的字节码文件中 代替配置文件存在 标注在包,类,字段,方法,参数...
使用: @注解名(配置数据) | @注解名
注解的分类:
JDK内置注解 @Override 标记一个方法为重写方法 @Deprecated 标记已经过时 @SuppressWarnings 抑制警告 参数的个数分类: 标记注解 单值注解 完整注解 元注解 注解注解的注解
@Target : 作用一个注解类在类中能够使用的位置 @Retention 用于描述注解的生命周期 @Documented 表示使用该注解的元素应被javadoc或类似工具文档化, @Inherited 标记一个注解类型能被子类继承
自定义注解
1.通过@interface自定义注解类型 2.默认隐式的实现了java.lang.annotation.Annotation 3.不能显示的实现其他接口或者继承其他父类 4.可以为注解类型添加字段, 数据类型 字段名(); 5.字段的数据类型 : 基本数据类型 String 枚举 注解 以上类型的数组 6.字段可以添加默认值 default 默认值 7.如果字段的个数只有一个,建议字段名定义为value,赋值的时候可以直接赋值,不需要字段名=字段值