【Groovy】Groovy 方法调用 ( Java 中函数参数是接口类型 | 函数参数是接口类型 可以 直接传递闭包 )
文章目录
- 一、Java 中函数参数是接口类型
- 二、函数参数是接口类型 可以 直接传递闭包
- 三、完整代码示例
一、Java 中函数参数是接口类型
在 Android 中经常使用如下形式的接口 :
定义一个 OnClickListener 接口 ,
interface OnClickListener {void onClick()
}
将 OnClickListener 接口对象 作为函数参数 , 传递到函数中 ,
void setOnClickListener (OnClickListener onClickListener) {onClickListener.onClick()
}
然后调用上述函数 , 传递一个 OnClickListener 的匿名内部类 ,
setOnClickListener(new OnClickListener() {@Overridevoid onClick() {println "OnClick"}
})
执行结果为 :
OnClick
二、函数参数是接口类型 可以 直接传递闭包
如果 setOnClickListener 函数参数接收的是 111 个接口 , 接口中只有 111 个方法 , 那么可以直接向 setOnClickListener 方法中传递一个闭包 , 该闭包相当于 OnClickListener 接口中的 onClick 方法 ;
interface OnClickListener {void onClick()
}void setOnClickListener (OnClickListener onClickListener) {onClickListener.onClick()
}setOnClickListener{println "OnClick2"
}
执行结果 :
OnClick2
三、完整代码示例
完整代码示例 :
interface OnClickListener {void onClick()
}void setOnClickListener (OnClickListener onClickListener) {onClickListener.onClick()
}// 正常参数调用
setOnClickListener(new OnClickListener() {@Overridevoid onClick() {println "OnClick"}
})// 传递一个闭包到 setOnClickListener 方法中
setOnClickListener{println "OnClick2"
}
执行结果 :
OnClick
OnClick2
【Groovy】Groovy 方法调用 ( Java 中函数参数是接口类型 | 函数参数是接口类型 可以 直接传递闭包 )相关推荐
- 【Groovy】Groovy 动态语言特性 ( Groovy 中的变量自动类型推断以及动态调用 | Java 中必须为变量指定其类型 )
文章目录 前言 一.Groovy 动态语言 二.Groovy 中的变量自动类型推断及动态调用 三.Java 中必须为变量指定其类型 前言 Groovy 是动态语言 , Java 是静态语言 ; 一.G ...
- Java面试之Java基础8——在 Java 中定义⼀个不做事且没有参数的构造⽅法的作⽤
在 Java 中定义⼀个不做事且没有参数的构造⽅法的作⽤,比如下面的代码: class Father {private String str;// 这个空构造方法有什么作用呢?Father(){}pu ...
- 39.在Java中定义一个不做事且没有参数的构造方法的作用?
1 在Java中定义一个不做事且没有参数的构造方法的作用 Java程序在执行子类的构造方法之前,如果没有用super()来调用父类特定的构造方法,则会 调用父类中"没有参数的构造方法&quo ...
- java convert函数_自己实现 java中 Convert.toDouble(String str)处理函数 | 学步园
今天在superWaba上看到Convert.toDouble(String str),由于底层问题比较大的数就出错,现在自己写了一个 程序中info()是我加的打印,可以去掉 java中 Conve ...
- java 集合初始化_6种方法初始化JAVA中的list集合
List 是 Java 开发中经常会使用的集合,你们知道有哪些方式可以初始化一个 List 吗?这其中不缺乏一些坑,今天栈长我给大家一一普及一下. 1.常规方式 List languages = ne ...
- Java中static代码块,main函数,构造函数运行顺序
1.Java中static代码块,main函数,构造函数运行顺序如下: 答:static代码块是主动执行的,因此static代码块先执行,然后是执行构造函数,最后是Main函数. 如下例子: publ ...
- Java中的public static final来修饰数组与接口变量
Java中的public static final来修饰数组与接口变量 public static final来修饰数组 final对数组的作用 怎样实现对数组的public static final ...
- java小数的数据类型_【填空题】Java 中小数默认的数据类型为 ,如果要指定为 类型,要在小数后面加F或f。...
[填空题]Java 中小数默认的数据类型为 ,如果要指定为 类型,要在小数后面加F或f. 更多相关问题 - Your plan is perfect and I believe that it wil ...
- groovy import java_在Java中调用Groovy方法的又一种方法:使用接口
1.定义Java接口包含在Java中需要调用的Groovy方法 public interface IFoo { public Object run(Object foo); } 2.创建Groovy类 ...
最新文章
- 献给Ubuntu的第一次
- 一篇博客带你轻松应对java面试中的多线程与高并发
- html购物车内部处理样式,第4期学习班-1.23作业-【JQuery-attr方法】-【JQuery-切换CSS效果】-【JQuery-插入元素】-【JQuery-加入购物车】...
- 我的学习之路_第十八章_SQL语句
- 深入new/delete:Operator new的全局重载
- android学习的一点点网站资料
- 2022年,图机器学习Graph ML发展到哪了?
- Tensorflow-slim 学习笔记(一)概述
- 5万字 | 2020大厂面试总结,PDF供下载
- 用python制作动态二维码_用Python制作动态二维码
- 【AI视野·今日CV 计算机视觉论文速览 第154期】Wed, 4 Sep 2019
- 云音乐vue开发日记
- 硬件工程师成长之路(0)----认识元件
- 认识LTE(八):LTE中的反馈:闭环空分复用(TM4)
- ROS局部运动规划器Teb/DWA
- 如何用ajax实现页面自动刷新,Ajax实现页面自动刷新实例解析
- Linux DBUS总线
- 网页段落文字右侧参差不齐对齐方式
- 控件增加变量失败,显示:未能返回新代码元素 可能是语法错误--解决方案
- camstar portal 7全屏显示