どうやら、ハッシュテーブルに Long 値を格納できません。
以下のコードを参照してください。
//create a hashtable of type <String, Long>
Hashtable <String, Long> universalTable = new Hashtable <String, Long> ();
universalTable.put("HEADS", new Long(0)); // this works fine
のコンストラクターでこのテーブルを渡しますDoFlip
。
DoFlip doFlip = new DoFlip(100000000, universalTable);
内部DoFlip
:
Hashtable table; // pointer to hash map
long iterations = 0; // number of iterations
DoFlip(long iterations, Hashtable table){
this.iterations = iterations;
this.table = table;
}
このクラスは Runnable を実装します。方法は次のrun()
とおりです—</p>
public void run(){
while(this.iterations > 0){
// do some stuff
this.heads ++;
this.iterations --;
}
updateStats();
}
public void updateStats(){
Long nHeads = (Long)this.table.get("HEADS");
this.table.put("HEADS", nHeads); // ISSUE HERE
}
次の警告/エラーが表示されます。警告のように見えますが、私はこれを望んでいません。
Note: File.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
再コンパイルすると:
File.java:92: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.Hashtable
this.table.put("HEADS", nHeads);
^
1 warning
なぜそうなのかはわかりません。まず、 cast と入力する必要はありませんnHeads
。しかし、私はまだそれを行っていますが、うまくいきません。
注: 私は Java がまったく得意ではありません。:/
助けてくれてありがとう。