在Android/Java中实现类似C#的事件

jny*_*len 10 java events android

我习惯用C#编程,我想念Java的一件事是它似乎没有C#的内置事件处理能力:

// define event signature
public delegate void SomeEventHandler();

class SomeEventGenerator {
    // define subscribable event property
    public event SomeEventHandler SomeEvent;

    protected void OnSomeEvent() {
        if (SomeEvent != null) {
            SomeEvent();
        }
    }
}

class SomeEventClient {
    public SomeEventClient(SomeEventGenerator eg) {
        // subscribe
        eg.SomeEvent += new SomeEventHandler(eg_SomeEvent);
        // do some stuff
        // unsubscribe
        eg.SomeEvent -= new SomeEventHandler(eg_SomeEvent);
    }

    private void eg_SomeEvent() {
        // handle event
    }
}
Run Code Online (Sandbox Code Playgroud)

在Java/Android中获得类似和轻量级的最佳方法是什么,它能够订阅/取消订阅多个事件客户端并立即调用所有订阅的客户端?

小智 7

您可能希望在java中研究侦听器的概念.我发现了一篇非常好的文章,称为"从Java开发人员的角度来看C#",你可能想要查看.

http://www.25hoursaday.com/CsharpVsJava.html