我正在编写使用jfree生成图形的应用程序。为选择特定图形提供了一个组合框。我为不同的图形维护了不同的类。并且使用switch语句在选择时调用这些特定的类一种图形。现在我想消除这个开关,并使其工作动态。例如,如果一个新的图类被选中,我应该能够调用该类,而不是在switch中写入更多的情况。Java中的回调会为此提供帮助。如果是,如何?还有其他方法可以做到这一点。在Java中使用回调
0
A
回答
1
这听起来像你真正想要的是Interface
。如其中一样,任何Graph
实例都可以提供的通用API。那么你不需要特别担心选择了哪种图表,因为每个图表都公开了相同的回调API。例如,你可能有这样的:
public interface Selectable {
public void onSelect();
}
然后你作为超使用您的图形实现,像一个抽象Graph
类:
public abstract class Graph implements Selectable {
}
然后你只标出每个图实现extends Graph
,编译器会确保你在每一个中都实现了onSelect()
。完成之后,您的switch
声明可以通过调用图的onSelect()
方法来替代。
在Java中,通过使用反射和类,可以在完全随意的对象上执行真正的动态回调/方法调用,但它确实不是直截了当的,对于你想要做的事听起来有点矫枉过正。
0
http://en.wikipedia.org/wiki/Observer_pattern是你在找什么。它大量用于事件驱动的UI代码。
相关问题
- 1. Java中的通用回调
- 2. 用java回调8
- 3. Rails回调:在回调中作为条件回复使用
- 4. 在使用回调(Java/Android)的for循环中累计值
- 5. JavaFX使用Smack API从Java回调(xmpp)
- 6. Kotlin使用Java回调接口
- 7. Java使用接口作为回调
- 8. Java,使用接口作为回调
- 9. 在Moq中调用回调
- 10. 在Java中使用HTTPS调用webservice
- 11. 如何从pthread(C)在Android NDK中调用回调(JAVA)
- 12. Java中的回溯调试
- 13. java中的回调情况
- 14. node.js回调设计 - 如何在回调中使用res
- 15. 在Java中回调(代码解释)
- 16. 在Java中处理异步回调
- 17. 如何在Java中实现回调
- 18. 使用回调
- 19. 使用netbeans在java中调试代码
- 20. 在AngularJS服务中使用$ http回调
- 21. 在ruby gpgme中使用密码回调
- 22. 如何在回调中使用“this”?
- 23. 如何在Python中使用回调?
- 24. 在Google Analytics中使用JS回调
- 25. 如何在javascript中使用回调
- 26. 在pyevent中使用回调函数
- 27. 如何在angular2中使用winwheel.js回调
- 28. 在ajax回调中使用变量'status'
- 29. 在RhinoMocks中使用回调触发器
- 30. 如何在$ .ajax回调中使用RedirectToAction?