我有以下代码:
public class Interval {
private HashMap intervals;
public Interval() {
this.intervals = new HashMap<String, List<Long>>();
}
public void addInterval(String name, long interval) {
List<Long> foo = new ArrayList<Long>();
foo.add(interval);
foo.add(System.currentTimeMillis());
this.intervals.put(name, foo);
}
public boolean isReady(String name) {
if (System.currentTimeMillis() - (this.intervals.get(name)).get(0) >
(this.intervals.get(name)).get(1)) { //ERROR
return true;
}
return false;
this.intervals.get(name).set(1, System.currentTimeMillis()); //ERROR
}
}
代码应该通过HashMap中的键存储间隔(以毫秒为单位),并且有一个方法来查看间隔是否已经过去(自上次调用以来)。它将用作玩家在游戏中射击的冷却时间。无论如何,代码不起作用,因为intervals.get(String key)返回的值是一个Object,并且不允许在其上调用像“get”和“set”这样的方法,就像我能够在一个ArrayList。有人知道怎么修这个东西吗?
P.S。注释“ERROR”的行是给出错误的行。
答案 0 :(得分:1)
从
更改您的私人字段private HashMap intervals;
到
private HashMap<String, List<Long>> intervals;