Java:通过参数传递类

时间:2015-03-12 07:26:41

标签: java android

请查看以下代码:

public class Hello
{
    public void onSayHello()
    {
    }
}


public void test()
{
    sayHello(new Hello()
    {
         public void onSayHello()
         {
              //do something
         }
    });
}

public void sayHello(Hello hello)
{
    Toast.makeText(context, "Hello world");
    hello.onSayHello();
}

这是一个很好的解决方案吗? 这是一个回调解决方案还是一个监听器解决方案?怎么称呼?

1 个答案:

答案 0 :(得分:1)

您正在创建一个匿名的派生类。如果您想接收回叫,它不是首选解决方案。而是使用界面:

public class Hello {

    public interface OnHelloSaidListener {
        void onHelloSaid();
    }

}

public void test() {
    sayHello(new OnHelloSaidListener() {
        @Override
        public void onHelloSaid() {
            // Do somth
        }
    });
}

public void sayHello(OnHelloSaidListener callback) {
    Toast.makeText(context, "Hello world");
    callback.onHelloSaid();
}