首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Java中实现类似于C#的语言级事件

如何在Java中实现类似于C#的语言级事件
EN

Stack Overflow用户
提问于 2014-01-09 05:48:23
回答 1查看 216关注 0票数 5

C#具有events on a language level的概念,使用保留关键字eventdelegate来定义发布者和订阅者方法。它一直是asked if Java has native support for that,但答案显然是否定的。还有一些several alternatives,包括使用AWT/Swing样式的事件、构建我自己的Observer pattern或使用其他发布/订阅方式。这是可能的,但正如一个答案所说,“只是需要更多的跑腿工作。”

一般来说,任何实现都遵循相同的类型化方法,并且可以自动化。Java有不同的元编程机制,例如AOP或AST转换。如何在Java语言中实现C#事件,以允许尽可能少的“跑腿”?

也许是Project Lombok

EN

回答 1

Stack Overflow用户

发布于 2014-01-09 06:02:27

如果您有一个分布式环境,请使用Akka

否则你有几个选择

芭乐有EvenBus。Guava将是我的选择,因为它已经成为Java项目使用的核心库之一,如apache commons、slf4j等。

谷歌搜索"java event library“可以找到更多的选择。

否则,编写一个保存订阅者的类,并在订阅者传入时将事件分派给它们。这很简单,但要小心并发。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21007276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档