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很新,所以我应该阅读哪些材料来了解更多关于这个特定主题的内容。 谢谢你:)
答案 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);
}
以下是refactoring和refactoring 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);
}