Java开发未读
Java高级:动态代理、反射动态代理什么是动态代理为了避免代码侵入式的修改,在程序运行时,目标对象不变,对目标对象生成代理对象,代理对象中的方法是目标对象方法的增强方法,最终达到目标对象增强的效果。
Java中动态代理的实现第一种:基于接口实现动态代理
基于接口的动态代理,用到的类是Proxy的newProxyInstance静态方法创建,要求被代理对象至少实现一个接口,如果没有,则不能创建代理对象。
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; interface MyInterface void doSomething(); public class DynamicProxyDemo ...
一、函数式接口只有一个抽象方法的接口就成为函数式接口。同时,引入了一个新的注解:@FunctionalInterface。可以把他它放在一个接口前,表示这个接口是一个函数式接口。这个注解是非必须的,只要接口只包含一个方法的接口,虚拟机会自动判断,不过最好在接口上使用注解 @FunctionalInterface 进行声明。在接口中添加了 @FunctionalInterface 的接口,只允许有一个抽象方法,否则编译器也会报错。
举例几个Java常用的函数式接口:predicate断言型接口、consumer消费者接口、supplier提供者接口、Function接口等。
记好一句话:函数式接口可以接收匿名内部类和lambda表达式
记好一句话:函数式接口可以接收匿名内部类和lambda表达式
记好一句话:函数式接口可以接收匿名内部类和lambda表达式
全文重点:
俗话说,new一个接口就要new他的实现类对象,但是假设我不存在函数时接口的实现类对象,那么一般就使用匿名内部类的形式创建对象。创建出来的匿名内部类需要实现函数式接口中全部(其实就一个)的抽象方法。既然是匿名内部类的抽象方 ...