如何创建此代码块的简短版本

时间:2011-05-25 08:26:36

标签: java

new java.util.Timer().schedule(
  new java.util.TimerTask() {
    @Override
    public void run() {
      // my code is here card.getJLabel().setVisible(false);
      }
    }, 3000 // < my parameter);

如何创建这个函数的简短函数,我在不同的函数中使用它,所以如果我可以创建这个函数的简短版本它会很干净。

还有一个,我对java很新,所以我应该阅读哪些材料来了解更多关于这个特定主题的内容。 谢谢你:)

3 个答案:

答案 0 :(得分:2)

假设可以从一个调用更改为另一个调用的是隐藏的card和隐藏之前的delay

public void hideCard(MyCard card, long delay){
  new java.util.Timer().schedule(
     new java.util.TimerTask() {
       @Override
       public void run() {
         card.getJLabel().setVisible(false);
       }
     }, delay);
  }

以下是refactoringrefactoring with Eclipse的良好开端。

答案 1 :(得分:1)

只需将代码段放在一个单独的方法中,并在每次要运行代码片段时调用该方法:

public void scheduleHideCard() {
    new java.util.Timer().schedule(
        new java.util.TimerTask() {
            @Override
            public void run() {
                // my code is here card.getJLabel().setVisible(false);
            }
        }, 3000 // < my parameter);
}

...并通过scheduleHideCard()调用该方法。

如果你正在使用Eclipse,你甚至可以选择代码片段并执行 Source - &gt;重构 - &gt;提取方法,它将负责为您提取适当的参数。

作为旁注:如果你使用java.util包中的几个类,你可能会在文件顶部导入这些类:

import java.util.*;

答案 2 :(得分:1)

如果我理解正确,您希望将此代码提取到这样的单独方法中吗?

void scheduleSomeActivity() {
  new java.util.Timer().schedule(...);
}

或可能转向,例如延迟到参数:

void scheduleSomeActivityWithDelay(long delay) {
  new java.util.Timer().schedule(..., delay);
}