【问题标题】:Java: Is there a way to call a method while the original method terminates? [closed]Java:有没有办法在原始方法终止时调用方法? [关闭]
【发布时间】:2014-07-20 00:11:00
【问题描述】:

这是我的问题:我需要调用方法终止(否则我的 UI 不会自行更新),而被调用的方法仍在工作。自动取款机是这样的:



    public InGameGUI() {
        ...
        switchToRoboControl();
    }

并切换 ToRoboControl 应该在 UI 上执行解决方案。我考虑过使用自定义的 Listener-thingee,但 1. 我不知道如何正确地做到这一点,并且 2. 我想知道是否有更好的方法。线程也不是真正要走的路,因为我需要以这种方式调用几种方法...

【问题讨论】:

标签: java methods swt terminate


【解决方案1】:

我会使用Threads,这正是应该使用它们的用例。

线程也不是真正要走的路,因为有几个 我需要以这种方式调用的方法...

是什么阻止您开始和管理更多 Threads 并可能将一些任务组合在一起?

此外,如果您对多个线程过敏,您可以定义一个心跳事件(一个单独的线程,它会定期活动(例如每秒启动一个实例)),它将始终检查并运行要运行的任务,并且您可以在你的主线程中安排任务。

【讨论】:

  • 尽管我对线程过敏,但使用线程有帮助,谢谢!这是一种痛苦,但现在它起作用了。 :-)
【解决方案2】:

你可以看看Spring提供的AOP framework。您可以进行各种调用,例如在连接点之前或之后执行一些建议。

您只希望在方法终止时执行方法或过程。 Spring AOP 提供的远不止这些。您可以在执行前、方法返回后、方法抛出异常后或三点同时运行方法。

您可以编写自己的 implements AfterReturningAdvice 类并覆盖 afterReturning() 方法。在你的 spring 配置文件中为你的 Class 创建一个代理 bean,它有 public InGameGUI() 方法。在这个 bean 中,您需要提供对实际类对象的引用以及引用实现 AfterReturningAdvice 作为拦截器名称的类的 bean。

【讨论】:

  • 这不是一个真正的答案,更多的是评论。
  • OP 已经要求一种在某些方法终止时调用方法的方法,这正是我所提到的。我看不出这比答案更符合评论的条件。
  • 这会将用户指向信息源,而不是帮助他解决特定问题。至少给出一个例子或一些解释这将如何帮助他
  • Vince 说了什么,并且:OP 有另一个问题悬而未决,他要求回答一个非常相似(我会说相同)的问题。
猜你喜欢
  • 2010-09-26
  • 2019-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多