函数式借口。
java.util.function.Supplier<T> 接口仅包含一个无参的方法: T get() 。用来获取一个泛型参数指定类型的对象数据。获得一个指定泛型的数据。
java.util.function.Consumer<T>口中包含抽象方法 void accept(T t) ,意为消费一个指定泛型的数据。默认方法andThen,如果一个方法的参数和返回值全都是 Consumer 类型就可以使用andthen方法同一份数据不同的操作方法。
java.util.function.Predicate<T> 接口。判断真假接口包含一个抽象方法: boolean test(T t)
and和与相似,or和或相似,negate取非。
Function 接口中最主要的抽象方法为: R apply(T t)方法,主要用于数据类型的转换,默认方法andthen 将第一个function的值传递给第二个function方法使用。
流。
所有的 Collection 集合都可以通过 stream 默认方法获取流;
Stream 接口的静态方法 of 可以获取数组对应的流。
过滤:filter 通过 filter 方法将一个流转换成另一个子集流。
映射:map 如果需要将流中的元素映射到另一个流中。
count:统计流中的个数
limit: 取前面几个
skip:跳过前面几个。
concat:流拼接。
方法引用: ::符号,用于简化lambda,当方法和对象都是已经存在的时候可以使用方法引用。可以通过上下文推导。
反射 Class对象功能:
* 获取功能:
1. 获取成员变量们
* Field[] getFields() :获取所有public修饰的成员变量
* Field getField(String name) 获取指定名称的 public修饰的成员变量
* Field[] getDeclaredFields() 获取所有的成员变量,不考虑修饰符
* Field getDeclaredField(String name)
2. 获取构造方法们
* Constructor<?>[] getConstructors()
* Constructor<T> getConstructor(类<?>... parameterTypes)
* Constructor<T> getDeclaredConstructor(类<?>... parameterTypes)
* Constructor<?>[] getDeclaredConstructors()
3. 获取成员方法们:
* Method[] getMethods()
* Method getMethod(String name, 类<?>... parameterTypes)
* Method[] getDeclaredMethods()
* Method getDeclaredMethod(String name, 类<?>... parameterTypes)
4. 获取全类名
* String getName()
ClassLoader classLoader = ReflectTest.class.getClassLoader();
InputStream is = classLoader.getResourceAsStream("pro.properties");
通过创建自身类对象查找到当前项目下的pro.properties进行加载。获取里面存储的信息。
Class cls = Class.forName(className);该方法是将类加载到内存。
Object obj = cls.newInstance(); 创建相应的对象。
Method method = cls.getMethod(methodName);获取内存中类的方法。
method.invoke(obj);执行内中的方法。
元注解:用于描述注解的注解
* @Target:描述注解能够作用的位置
* @Retention:描述注解被保留的阶段
* @Documented:描述注解是否被抽取到api文档中
* @Inherited:描述注解是否被子类继承
注释接口中,返回类型只能是 基本数据类型、枚举、字符串、注释、以及对应的数组,这几种类型,不能返回空。
@Target({ElementType.TYPE,ElementType.METHOD,ElementType.FIELD})分别对应,类,方法,成员变量,3个作用域;
@Retention(RetentionPolicy.RUNTIME) 运行时期。
method.isAnnotationPresent(Check.class)判断该方法上面是否有“Check”注释。
e.getCause().getClass().getSimpleName() 获取异常的名称。
e.getCause().getMessage()异常产生的原因
|
|