版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载,违者必究。 https://blog.csdn.net/Cricket_7/article/details/89764224
【1】方法引用是什么?
-
是lambda表达式的一个简化写法. 方法引用语法:左边是容器(可以是类名,实例名),中间是" :: ",右边是相应的方法名。
ObjectReference::methodName
【2】一般方法的引用格式:
如果是静态方法,则是ClassName::methodName。如 Object ::equals
如果是实例方法,则是Instance::methodName。
Object obj=newObject();
obj::equals;
构造函数.则是ClassName::new
【3】使用案例:
-
创建接口和实现类
class MyButton {
public void setOnClickListener(MyListener listener){
}
}
interface MyListener{
boolean onClick(String s,int i);
}
-
创建一个实现方法
// 被引用的方法,参数和返回值必须和接口中抽象方法一致
public static boolean aa(String s, int i){
return false;
}
-
调用,MainActivity是当前类 。 aa是类中的方法
// 方法引用,前提是能使用lambda表达式
myButton.setOnClickListener(MainActivity::aa);