我想在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(); 我不想把时间放在第二堂课的括号内。
因为将来如果我想修改时间,我将不必通过所有代码并更改时间。 如果我在实用程序类中修复时间,这将适用于所有地方
感谢您的帮助
答案 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());
}
}
}