2016-06-29 13 views
0

I次のコードを持っている:呼び出すメソッドは、オブジェクト

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

'民間のHashMap <文字列、リスト> intervals' – kazenorin

答えて

1

変更

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

DUHへ

private HashMap intervals; 

からあなたのプライベートフィールド。どうも。素晴らしい仕事をした。 – agillgilla

関連する問題