java笔记--什么是接口回调,怎么用

所谓回调就是A类中设置一个方法b给对象C,C可以执行A中的方法b。通常这个方法是定义在C对象中的接口中的抽象方法,

A设置的时候直接设置这个接口对象即可。


通常A,b,C的关系是这样的,看下别人的解释,其实是一个道理

接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调

如何定义一个回调

a. 定义接口 : 在类©中定义一个Interface, 并在接口中定义一个抽象方法(b);

b. 接口对象 : 在类©中定义一个该接口的成员变量;

c. 设置对象 : 在类©中定义一个公共的方法(d), 可以设置这个接口的对象, 调用该方法给接口对象成员变量赋值;

d. 调用方法 : 在合适的位置调用接口对象中的方法(a调用b方法);

具体代码如下

类C


package com.example.interfacetest.cn;



/**

 * 接口的回调机制

 * 测试的模版类 类似于android中的控件的点击事件

 */

public class Mode {



	CallbackTest mCallbackTest;//定义接口的成员变量



	public interface CallbackTest {//定义回调的接口和方法

		public void function1();



		public void function2();

	}



	/**

	 * 参数是一个接口

	 * @param mCallbackTest

	 */

	public void getInterface(CallbackTest mCallbackTest) {//定义公共方法给接口变量赋值

		this.mCallbackTest = mCallbackTest;

	}



	public void setOnclick() {

		mCallbackTest.function1();

	}

	

	public void setOnclick2() {

		mCallbackTest.function2();

	}

}



类A


package com.example.interfacetest.cn;



import com.example.interfacetest.cn.Mode.CallbackTest;



public class MyInterfaceTest {



	public static void main(String[] args) {

		// TODO 自动生成的方法存根

		Mode mode = new Mode();





**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/62724097695fecdf0d49819a81a24f06.png)
![img](https://img-blog.csdnimg.cn/img_convert/cf7f8010235603cbead24d210fca033e.png)
![img](https://img-blog.csdnimg.cn/img_convert/ac0f5051adbfc00d4585cc2d851e704e.png)
![img](https://img-blog.csdnimg.cn/img_convert/1aedfd354ad4aa709e74813b0176d51c.png)
![img](https://img-blog.csdnimg.cn/img_convert/2fcd0fda385644016e7dd80d4feccb5e.png)
![img](https://img-blog.csdnimg.cn/img_convert/8503ff9f1d3772bf7ebcacc6fca60317.png)
![img](https://img-blog.csdnimg.cn/13f2cb2e05a14868a3f0fd6ac81d625c.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)**
![img](https://img-blog.csdnimg.cn/img_convert/6edd85557dac364308f7e21fc48cd378.png)



### 最后

希望本文对你有所启发,有任何面试上的建议也欢迎留言分享给大家。

好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,**来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。**



![](https://img-blog.csdnimg.cn/img_convert/3d075aacd8553d019c851b6f21d9325c.webp?x-oss-process=image/format,png)

好了~如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

![](https://img-blog.csdnimg.cn/img_convert/4d04fbbc249973a51dc3f7cfd8709d79.webp?x-oss-process=image/format,png)

>为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!

你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

[外链图片转存中...(img-EiK8P2B3-1711934041255)]

>为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!

> **本文已被[CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》]( )收录**
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很好的问题!让我来解答。 首先,让我们来了解一下 `Comparable` 接口。这个接口是 Java 中的一个接口,它只有一个方法 `compareTo()`。这个方法的作用是定义类的自然排序顺序。 如果我们要对一个对象集合进行排序,只需要让这个类实现 `Comparable` 接口,并且重写 `compareTo()` 方法。这个方法返回一个整型值,表示该对象与另一个对象的大小关系。如果该对象小于另一个对象,则返回负整数;如果两个对象相等,则返回零;如果该对象大于另一个对象,则返回正整数。 下面是一个简单的例子,展示如何使用 `Comparable` 接口进行排序。 ```java public class Student implements Comparable<Student> { private String name; private int age; public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } // 重写 compareTo 方法 @Override public int compareTo(Student o) { // 按照年龄从小到大排序 return this.age - o.getAge(); } } ``` 在这个例子中,我们定义了一个 `Student` 类,并且让它实现了 `Comparable` 接口。我们重写了 `compareTo()` 方法,按照年龄从小到大排序。 现在,我们可以使用 `Collections.sort()` 方法对 `Student` 对象进行排序了: ```java List<Student> students = new ArrayList<>(); students.add(new Student("Tom", 20)); students.add(new Student("Jerry", 18)); students.add(new Student("Alice", 22)); Collections.sort(students); for (Student student : students) { System.out.println(student.getName() + " " + student.getAge()); } ``` 输出结果为: ``` Jerry 18 Tom 20 Alice 22 ``` 可以看到,我们成功地按照年龄从小到大对 `Student` 对象进行了排序。 希望这个例子能够帮助你理解如何使用 `Comparable` 接口进行排序。如果你还有其他问题,请随时提出!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值