0
在Android遊戲中,我問玩家一個問題,我想在不同的時間長度後給出不同的提示,最後給出答案,如果玩家未能及時回答。使用計時器在Java中創建通用任務
問題,提示和延遲時間是從JSON格式的外部文件讀入的。
我想爲每個提示設置一個計時器。在JavaScript我可以做創建一個通用的方法有關閉,這樣的事情:
JavaScript代碼
<body>
<p id="1">One</p>
<p id="2">Two</p>
<p id="3">Three</p>
<script>
var hints = [
{ id: 1, delay: 1000, text: "Hint 1" }
, { id: 2, delay: 2000, text: "Hint 2" }
, { id: 3, delay: 3000, text: "Hint 3" }
]
hints.map(setTimeoutFor)
function setTimeoutFor(hint) {
setTimeout(showHint, hint.delay)
function showHint() {
element = document.getElementById(hint.id)
element.innerHTML = hint.text
}
}
</script>
在Java中,我知道,我可以用一個單獨的方法爲每個提示,像這樣:
Java代碼的
import java.util.Timer;
import java.util.TimerTask;
String hint1 = "foo";
CustomType location1 = customLocation;
Timer timer1;
TimerTask task1;
void createTimer1(delay) {
timer1 = new Timer();
task1 = new TimerTask() {
@Override
public void run() {
giveHint1();
}
};
timer1.schedule(task1, delay);
}
void giveHint1() {
timer1.cancel()
giveHint(hint1, location1);
}
void giveHint(String hint, CustomType location) {
// Code to display hint at the given location
}
這是不優雅。我可以在Java中使用哪些技術來製作這種通用的,以便我可以對所有提示使用相同的方法?