反射
通过类对象获取类中的所有信息,包括但不限于包名,类名,父类名,接口名,属性,方法,构造函数等。
1.如何让获取类对象
方式一:类的对象.getClass()
方式二:类名.class
方式三:class.forName(“包名.类名”);
2.类对象的方法
获取信息
获取包的信息
获取类名
获取父类
获取接口
获取属性
获取公共属性
获取所有属性
获取单个属性
Field:属性对象的类
方法:设置略过访问权限修饰符
获取
设置
获取方法
获取公共方法
获取所有方法
获取单个方法(方法名,形参列表的类对象)
Method:方法对象的类
方法:
设置略过访问权限修饰符
invoke(对象,实参列表):执行方法
获取构造函数
获取公共构造函数
获取所有构造函数
获取单个构造函数
方法:
设置略过访问权限修饰
invoke(对象,实参列表):执行方法
获取构造函数
获取公共构造函数
获取所有构造函数
获取单个构造函数
方法:
设置略过访问权限修饰符
newInstance();创建类对象
获取注解:Annotation
~~删除线格式~~
**注解**
注解:解释数据的数据,称为元数据
使用:
1.定义注解
语法:访问权限修饰符 @interface 注解名{ 注解属性 public 数据类型 属性名(); public 数据类型 属性名() defalut 默认值; }
2.使用注解
语法:
@注解名(属性名1=属性值1,属性名2={属性值,属性值,。。。。。})
3.通过反射获取注解信息,并使用
步骤:
1,获取类对象
2,获取注解对象
3,获取注解信息
4,使用注解信息
元注解
1.使用时机
2.生成文档
3.适用范围
默认全部
4.是否可以继承
默认不能继承
***笔记***
***lambda表达式***
简介:就是其他语言的闭包
作用:简化代码
要求:一个接口中只能在一个抽象方法
语法L:(参数1,参数2,。。。。。)---》{
方法体
}
函数式接口:一个接口中只有一个抽象方法的接口称为函数式接口
使用情况
1.函数时接口都抽象方法没有形参
接口 对象名=()-》{
方法体
};
2.函数时接口中都抽象方法没有形参
接口名 对象看名=(数据类型 形参名1,数据类型 参数2,。。。。)-》{
方法体
};
接口名 对象名 = (参数名1,参数名2,...)->{ 方法体 };
3,函数式接口中的抽象方法重写后只有一行代码,可以省略{},如果该代码是返回值需要忽略return不写
4,函数式接口中的抽象方法只有一个形参,可以省略()不写
5,函数式接口中的抽象方法的形参用final修饰,形参不可变,包括()与数据类型
6,函数式接口中的抽象方法有返回值,如果是多行代码不能省略return,如果是单行可以省略return
总结:使用情况:一个接口中只有一个抽象方法 写法:(形参列表)->{方法体}; 注意事项:
1,形参列表中数据类型可以删除
2,如果形参中只有一个参数可以省略小括号
3,如果方法体只有一行代码,可以省略大括号,如果这行代码是返回值必须省略return
4,如果形参中有final修饰的参数,不能声明形参相关
5,形参名可以改