如何为time sleep创建一个java实用程序类

时间:2014-07-11 17:00:25

标签: java

我想在java中使用预定义的时间为时间睡眠创建一个实用程序类,我想在另一个调用中调用它。

例如我实际上有:  我的实用程序类:

public static void waitFor(int sec) {
        try {
            Thread.sleep(sec * 1000L);
        } catch (Exception e) {
            System.out.println(e.toString());
        }
    }

使用这个类,我可以使用方法Utility.waitFor(20); 在另一个班级,它完美地运作。

我想要的是在Utiliy课程中启动时间,例如20秒并调用该方法 Utility.waitFor(); 我不想把时间放在第二堂课的括号内。

因为将来如果我想修改时间,我将不必通过所有代码并更改时间。 如果我在实用程序类中修复时间,这将适用于所有地方

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

在您的实用程序类中添加一个您可以设置的static int

class Utility
{
    private static int sleepTime = 20;
    public static void setSleepTime( int time ){ sleepTime = time; }

    public static void waitFor(){
       try {
          Thread.sleep(sleepTime * 1000L);
       } catch (Exception e) {
          System.out.println(e.toString());
       }
    }
}

然后在其他地方,当你想改变它等待的时间时,你只需要调用Utility.setSleepTime()

答案 1 :(得分:0)

  

因为将来如果我想修改时间,我将不必通过所有代码并更改时间。如果我在实用程序类中修复时间,这将适用于所有地方。

完全对比的陈述和你现在的做法是正确的选择。

1)如果所有时间都相同,你只需直接输入方法。 2)否则,你必须打发时间。

没有其他选择,甚至没有意义,至少对我而言:)。

我建议只是维护常量作为参数传递,你只需要每次编辑那些常量。

例如:

public static final long TIME_FOR_THAT = 10;
public static final long TIME_FOR_THIS = 20;

在打电话的时候

setSleepTime(Timings.TIME_FOR_THAT);

看,一切都在一个地方。只需在一个文件中编辑您的时间。甚至你可以通过属性文件对其进行外部化,甚至可以从配置方面进行维护:)

答案 2 :(得分:0)

为什么不创建传递你想等待上课的时间,并允许你自己稍后改变它,如果需要的话。

public class Utility {
     int secsToWait;

      public Utility(int secsToWait) {
           this.secsToWait = secsToWait;
      }

     // So you can change it later, after creation, if you need to
     public void setTime(int seconds) {
          secsToWait = seconds;
     }


     public void wait() {
          try {
               Thread.sleep(secsToWait);
          } catch (Exception e) {
               System.out.println(e.toString());
          }
    }
}