文章目录

  • 一、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 中函数参数是接口类型 | 函数参数是接口类型 可以 直接传递闭包 )相关推荐

  1. 【Groovy】Groovy 动态语言特性 ( Groovy 中的变量自动类型推断以及动态调用 | Java 中必须为变量指定其类型 )

    文章目录 前言 一.Groovy 动态语言 二.Groovy 中的变量自动类型推断及动态调用 三.Java 中必须为变量指定其类型 前言 Groovy 是动态语言 , Java 是静态语言 ; 一.G ...

  2. Java面试之Java基础8——在 Java 中定义⼀个不做事且没有参数的构造⽅法的作⽤

    在 Java 中定义⼀个不做事且没有参数的构造⽅法的作⽤,比如下面的代码: class Father {private String str;// 这个空构造方法有什么作用呢?Father(){}pu ...

  3. 39.在Java中定义一个不做事且没有参数的构造方法的作用?

    1 在Java中定义一个不做事且没有参数的构造方法的作用 Java程序在执行子类的构造方法之前,如果没有用super()来调用父类特定的构造方法,则会 调用父类中"没有参数的构造方法&quo ...

  4. java convert函数_自己实现 java中 Convert.toDouble(String str)处理函数 | 学步园

    今天在superWaba上看到Convert.toDouble(String str),由于底层问题比较大的数就出错,现在自己写了一个 程序中info()是我加的打印,可以去掉 java中 Conve ...

  5. java 集合初始化_6种方法初始化JAVA中的list集合

    List 是 Java 开发中经常会使用的集合,你们知道有哪些方式可以初始化一个 List 吗?这其中不缺乏一些坑,今天栈长我给大家一一普及一下. 1.常规方式 List languages = ne ...

  6. Java中static代码块,main函数,构造函数运行顺序

    1.Java中static代码块,main函数,构造函数运行顺序如下: 答:static代码块是主动执行的,因此static代码块先执行,然后是执行构造函数,最后是Main函数. 如下例子: publ ...

  7. Java中的public static final来修饰数组与接口变量

    Java中的public static final来修饰数组与接口变量 public static final来修饰数组 final对数组的作用 怎样实现对数组的public static final ...

  8. java小数的数据类型_【填空题】Java 中小数默认的数据类型为 ,如果要指定为 类型,要在小数后面加F或f。...

    [填空题]Java 中小数默认的数据类型为 ,如果要指定为 类型,要在小数后面加F或f. 更多相关问题 - Your plan is perfect and I believe that it wil ...

  9. groovy import java_在Java中调用Groovy方法的又一种方法:使用接口

    1.定义Java接口包含在Java中需要调用的Groovy方法 public interface IFoo { public Object run(Object foo); } 2.创建Groovy类 ...

最新文章

  1. 献给Ubuntu的第一次
  2. 一篇博客带你轻松应对java面试中的多线程与高并发
  3. html购物车内部处理样式,第4期学习班-1.23作业-【JQuery-attr方法】-【JQuery-切换CSS效果】-【JQuery-插入元素】-【JQuery-加入购物车】...
  4. 我的学习之路_第十八章_SQL语句
  5. 深入new/delete:Operator new的全局重载
  6. android学习的一点点网站资料
  7. 2022年,图机器学习Graph ML发展到哪了?
  8. Tensorflow-slim 学习笔记(一)概述
  9. 5万字 | 2020大厂面试总结,PDF供下载
  10. 用python制作动态二维码_用Python制作动态二维码
  11. 【AI视野·今日CV 计算机视觉论文速览 第154期】Wed, 4 Sep 2019
  12. 云音乐vue开发日记
  13. 硬件工程师成长之路(0)----认识元件
  14. 认识LTE(八):LTE中的反馈:闭环空分复用(TM4)
  15. ROS局部运动规划器Teb/DWA
  16. 如何用ajax实现页面自动刷新,Ajax实现页面自动刷新实例解析
  17. Linux DBUS总线
  18. 网页段落文字右侧参差不齐对齐方式
  19. 控件增加变量失败,显示:未能返回新代码元素 可能是语法错误--解决方案
  20. camstar portal 7全屏显示

热门文章

  1. lufylegend基础知识1
  2. Python Xml类
  3. extjs gridpanel滚动条问题显示数据不完整
  4. SPQuery 查询知多少
  5. Feature Schema中Module和File节点属性含义的解释
  6. Windows7 WIN 7 64位 环境编译6sv2.1版本的大气传输模型
  7. [异常特工]android常见bug跟踪
  8. 关于年终奖励的扣税算法BUG
  9. FastDFS安装、配置、部署(三)-Storage配置具体解释
  10. LINUX服务器开启防火墙并屏蔽恶意IP