【问题标题】:Java return method from inside anonymous inner class匿名内部类内部的Java返回方法
【发布时间】:2015-07-08 04:38:35
【问题描述】:

我有一个名为play() 的方法。在类内部,我有一个Timer (java.util.Timer) 和一个TimerTask 类型的匿名内部类。这是我的代码:

public static void play() {
    new Timer().schedule(new TimerTask() {
        public void run() {
            ...
        }, 0, 100); // Run every 10 milliseconds starting in 0 milliseconds (immediately)
}

现在的问题是......我希望从匿名内部类内部(...)从方法play返回,但是如果我调用“return”,它将从“ run" 内部类中的方法。如何从匿名内部类中的play 方法返回?

[标题不是很清楚;我不能很好地表达它。如果您能想到更好的标题,请编辑标题。]

【问题讨论】:

  • 这根本不可能。 run() 方法在另一个线程中运行;在第一次调用run() 方法时,可能已经完成了对play() 方法的调用。
  • 你能解释一下你要做什么吗?
  • 他想在TimerTask匿名内部类对象run()方法中破坏play()方法的执行。
  • 是否正在尝试等待 run 方法在 play 方法中完成?
  • 没关系。请参阅下面的答案(已接受的答案)。 run() 方法实际上在设置计时器后结束,因为计时器在单独的线程上运行。

标签: java methods anonymous-class


【解决方案1】:

函数play应该立即返回,因为定时器在另一个线程上运行,因此不需要在内部类之外返回。

【讨论】:

  • 好点。我忘记了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 2019-06-05
  • 1970-01-01
相关资源
最近更新 更多