2014-04-06 44 views
1

是否可以在java中實現回調函數。 Java中的執行器服務或Future Apis只與它靠近,但不是真正的回調IMO。請讓我知道你的想法。java中的回調函數

+1

爲什麼你覺得Java不支持回調? – SimonC

回答

2

Java中的回調傳統上使用接口(例如Runnable和Callable)完成。 Java 8引入了Lambda表達式,它改變了回調的語法,但不包括底層的機制(據我所知)。請注意,任何使用觀察者模式的東西基本上都使用回調結構,包括ActionListeners,PropertyChangeListeners等等。這些通常基於將接口實現(或現在的lambda表達式)傳遞給方法參數。

+0

是的你是正確的,使用觀察者模式的任何事情本質上是一個回調。但是,我可能並不清楚問這個問題。我懷疑java是否支持類似於javascript中的ajax的遠程通信情況下的回調機制。 – Nirmalya

+1

http://docs.oracle.com/javase/7/docs/api/java/nio/channels/AsynchronousSocketChannel.html支持類型爲http://docs.oracle.com/javase/7/docs/api/的回調java/nio/channels/CompletionHandler.html用於網絡通信。 –