2016-05-13 15 views
0

私はJavaプログラムで非常に奇妙な動作をしています。 ..私は、メソッドから取得した長い、長いハッシュマップを持っていますが、私はそれから情報を取得しようとしたとき、このハッシュマップは、すべてのエラーや警告なしで文字列、文字列である私のコード下:奇妙なエラーJavaハッシュマップの型Long、String

List<HashMap<Long, Long>> getAggregateResult(String idCheptel, Integer limit) { 
    StringBuilder hql = new StringBuilder(); 
    hql.append("select new map(t.prod.id, count(t.prod.id))"); 
    ... //rest of implem. 
    return entityManager.createQuery(hql.toString()).setMaxResults(limit).getResultList(); 
} 

コール

... //in other method try to retrieve the information 
    for (HashMap<Long, Long> map : getAggregateResultVetProduct(idCheptel, limit)) { 
      System.out.println(">>>>>>>" + map.get(0L)); //always null 
      //the map is asked in Long, but in debugger it's a String, String 
      for (Map.Entry<Long, Long> entry : map.entrySet()) { 
       System.out.println("Key: " + entry.getKey()); //here key are 0 
       System.out.println("Value: " + entry.getValue()); 
      } 
     } 

関数のこの動作があり、なぜ誰かが私にいくつかの情報を与えることができれば。ありがとう。

ここではいくつかの情報

編集: 私はのIntelliJを使用しています。そしてデバッガのスクリーンショットの下に、それが尋ねられたので。

enter image description here

+0

参照するデバッガ出力またはスクリーンショットを表示できますか? –

+0

getAggregateResultVetProductメソッドは何をしますか? – mvera

+0

また、entityManager.createQueryは私が推測するHashMapを返しません。 – mvera

答えて

0

ジェネリック医薬品に関する情報は、コンパイル時に消去されます。したがって、実行時にメソッドはただHashMapを返します。ですから興味深いのは、.getResultList()メソッドの戻り値の実際の型は何かです。