转载自  Java中的函数传递

在C和C++中,函数的传递可以通过函数指针来实现。在C#中,函数传递可以通过委托、Action、Func来实现。Java中没有函数指针、没有委托,那函数要如何传递呢?

可以通过以下两种方式实现。

1、通过handler,在A类中实例化B类,并传递一个handler到B中。B通过handler发送消息,A中接收到消息后,执行相应的函数。严格的来说,这种不算是函数传递,只是变相达到了函数调用的目的。

2、通过接口来实现。下面是实现的代码。

ICallback.java

package com.sparkle.sgmjl;public interface ICallback {abstract void callback(String data);
}

在A类中传递ICallback给B类,代码如下。

ClassA.java

ClassA classA=new ClassA( new ICallback() {@Overridepublic void callback(String data) {Test(data);}}); private void Test(String data)
{Log.e("TEST",data))
}

ClassB.java

public ClassB(ICallback icallback){icallback("Call OK"); }

Java中的函数传递相关推荐

  1. 为什么说 Java 中只有值传递?

    对于初学者来说,要想把这个问题回答正确,是比较难的.在第二天整理答案的时候,我发现我竟然无法通过简单的语言把这个事情描述的很容易理解,遗憾的是,我也没有在网上找到哪篇文章可以把这个事情讲解的通俗易懂. ...

  2. java只有值传递_面试官:为什么 Java 中只有值传递?

    1.为什么 Java 中只有值传递? 首先回顾一下在程序设计语言中有关将参数传递给方法(或函数)的一些专业术语.按值调用(call by value)表示方法接收的是调用者提供的值,而按引用调用(ca ...

  3. 为什么说Java中只有值传递(另一种角度)

    转载自 为什么说Java中只有值传递 对于初学者来说,要想把这个问题回答正确,是比较难的.在第二天整理答案的时候,我发现我竟然无法通过简单的语言把这个事情描述的很容易理解,遗憾的是,我也没有在网上找到 ...

  4. 一文彻底搞懂Java中的值传递和引用传递!

    关于Java中方法间的参数传递到底是怎样的.为什么很多人说Java只有值传递等问题,一直困惑着很多人,甚至我在面试的时候问过很多有丰富经验的开发者,他们也很难解释的很清楚. 我很久也写过一篇文章,我当 ...

  5. java引用传递_理解Java中的引用传递和值传递

    关于Java传参时是引用传递还是值传递,是一个讨论比较多的话题, 有说Java中只有值传递,也有些地方说引用传递和值传递都存在,本篇记录思考过程,不保证正确性, 感兴趣的同学一起讨论. 1.基本类型和 ...

  6. 为什么Java中只有值传递

    原文链接:https://www.cnblogs.com/wchxj/p/8729503.html 在开始深入讲解之前,有必要纠正一下大家以前的那些错误看法了.如果你有以下想法,那么你有必要好好阅读本 ...

  7. java只有值传递_为什么说java中只有值传递

    前言 这几天在整理java基础知识方面的内容,对于值传递还不是特别理解,于是查阅了一些资料和网上相关博客,自己进行了归纳总结,最后将其整理成了一篇博客. 值传递 值传递是指在调用函数时将实际参数复制一 ...

  8. 请注意,java中没有引用传递

    今天在论坛上有人提了一个关于java中调用函数时有没有引用传递的问题,可谓是吵的不可开交.有人说java只有值传递,也有人说java既有值传递也有引用传递,那么java中到底有没有引用传递呢,下面我来 ...

  9. 什么是值传递,什么是引用传递。为什么说Java中只有值传递。

    关于这个问题,在StackOverflow上也引发过广泛的讨论,看来很多程序员对于这个问题的理解都不尽相同,甚至很多人理解的是错误的.还有的人可能知道Java中的参数传递是值传递,但是说不出来为什么. ...

最新文章

  1. 为TypeScript项目生成API文档
  2. pdfparser java_如何使用java从PDF中提取内容?
  3. MyBatis(1):MyBatis入门
  4. zabbix NFS挂载 监控模板
  5. js的异步请求出现同步效果
  6. 【ArcGIS风暴】ArcGIS获取一个省各个地区界内的河流的总长度--以甘肃省为例
  7. 2021金蝶全球创见者大会成功举办, 500强企业共话EBC数字战斗力
  8. hdu2243考研路茫茫——单词情结
  9. 走在WCF学习的路上---印在脑子里的点点滴滴(两种元数据交换方式的优缺点)...
  10. 后台审批功能 销售发货单 生成 销售出库单 java NC633 接口开发
  11. Android学习手册:JSON解析工具比较
  12. HowTo 激活非常规方式安装的正版OEM Vista
  13. html autoplay属性,HTML autoplay属性用法及代码示例
  14. 小雷的冰茶几(并查集)
  15. oracle逗号隔开行转列_oralce逗号分割变多行-Oracle
  16. ffplay工具命令使用技巧浅析
  17. 2018最新云知梦Laravel5.4电商实战项目VIP实战
  18. 【Beta阶段】第九次Scrum Meeting
  19. html页面实现打印功能
  20. php上传头像的代码,针对多用户实现头像上传功能PHP代码 适用于登陆页面制作...

热门文章

  1. jsbridge实现及原理_JSBridge 实现原理解析
  2. 电脑打字手指正确姿势_写字坐姿不正确的难题,已被家长攻克,果然高手在民间...
  3. matlab如何使用cu文件,Matlab编译cuda的.cu文件
  4. Deeplab unexpected label
  5. 2019-ACM-ICPC-南京区网络赛-E. K Sum(莫比乌斯反演 + 杜教筛)
  6. Codeforces Round #716 (Div. 2)
  7. 1153 Decode Registration Card of PAT (25分)
  8. 牛客网【每日一题】4月21日题目精讲 糖糖别胡说,我真的不是签到题目
  9. [USACO19JAN,Platinum]Train Tracking 2
  10. LOJ:黑暗城堡(最短路)