委托是一个函数的引用,换句话说,它是函数的指针,通常,我们会为了代码的结构更清晰,定义很多函数引用(委托),然后传递委托。

java本质上是有委托的,但它没有外放,即便你java水平很高,研究了他的源代码,那你也找不到一个比较简单的办法让委托被使用和传递。

但java中有一个办法可以模拟委托,但他只能模拟匿名委托。

首先定义一个Callback_Comm 类

public class Callback_Comm {
    public void call(String con){
    }
}

然后编写函数。

public void test(Callback_Comm callback ){
        new Thread(){
            @Override
            public void run(){
                callback.call("kiba");
            }
        }.start();
    }

然后模拟匿名委托调用。

test(new Callback_Comm(){
    @Override
    public void call(String con){
        String ret=con;
    }
});

道理很简单,就是调用方法时传递一个对象,然后在对象里,重载他的某一个方法。虽然代码有点多,但实现了匿名委托。


此外,我们还可以用lambda表达式,让这个匿名委托更加简便。

先定义一个接口ICallback_Comm。

public interface ICallback_Comm {
    public void Call(String con);
}

然后让Callback_Comm 继承他。

然后test函数改为接受ICallback_Comm。

public void test(ICallback_Comm callback ){
        new Thread(){
            @Override
            public void run(){
                callback.call("kiba");
            }
        }.start();
    }

然后模拟调用代码如下:

test(
 con->{
    String ret=con;
 }
);

虽然这并不是真正的委托,但他的写法和用法,和匿名委托一般无二。

PS:Java的代码提示是分大小写的,如:User,我们再打U时会提示类名,打u时,不提示。

----------------------------------------------------------------------------------------------------

注:此文章为原创,任何形式的转载都请联系作者获得授权并注明出处!
若您觉得这篇文章还不错,请点击下方的推荐】,非常感谢!

 Java的委托

 

相关文章:

  • 2020-06-18
  • 2019-06-04
  • 2021-12-03
  • 2020-07-19
  • 2021-09-27
  • 2021-09-08
  • 2019-01-02
  • 2021-11-20
猜你喜欢
  • 2021-09-14
  • 2021-08-16
  • 2019-11-28
  • 2021-10-07
  • 2018-01-19
  • 2019-07-19
  • 2021-09-08
相关资源
相似解决方案