Почему метод getTime()
возвращает null
значение? Возврат ненулевого значения, когда time
объявлен как переменная static
, но тогда мы не можем создавать объекты с разным временем.Как получить время в следующем фрагменте кода
package timecounter;
import java.util.Timer;
import java.util.TimerTask;
public class Timerx extends TimerTask {
int H, M, S;
Timer timer;
String time;
@Override
public void run() {
S++;
if (S >= 60) {
M++;
S = 0;
if (M >= 60) {
H++;
M = 0;
if (H >= 12) {
H = 0;
}
}
}
this.time = String.format("%2d:%2d:%2d", H, M, S);
System.out.print("Running");
}
public void start() {
timer.schedule(new Timerx(), 1000, 1000);
}
public Timerx() {
this.timer = new Timer();
}
public String getTime() {// here return null value
return time;
}
}
Что вы подразумеваете под «его возвратом, когда« переменная статического времени строки »? Я предполагаю, что вы вызываете 'getTime()' на новый экземпляр, а не тот, где таймер действительно выстрелил. –
'start()' похоже, планирует «новый Timerx()», а не 'this'. Полагаю, это проблема. –
На самом деле я не могу получить время, чтобы вернуть значение null. когда я изменил переменную времени на строку своей работы, но timeCounter в каждом экземпляре вернется в то же время –