在HashMap对象上调用方法

时间:2016-06-29 05:40:51

标签: java hashmap

我有以下代码:

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”的行是给出错误的行。

1 个答案:

答案 0 :(得分:1)

更改您的私人字段
private HashMap intervals;

private HashMap<String, List<Long>> intervals;