FastMap.valuesを反復処理する必要があります。 私の問題は、基本的なループがnullポインタ例外 - FastMap値を反復する
Collection<Order> orders = myObject.getOpenOrders();
for (Order order : orders) {
}
問題は、私のシステム内の別のスレッドがfastmap それは追加し、それに要素を削除してを編集し、私はNullPointerExceptionが取得することでNullPointerExceptionが
基本ループの上に失敗したということです。 まれですが、解決する必要があります。
は、だから私は
Collection<Order> orders = myObject.getOpenOrders();
for (Order order : orders) {
if (order != null)
}
とまだ私は は、だから私は
FastMap<String, Order> openOrders = myObject.getOpenOrdersMap();
for (FastMap.Entry<String, Order> e = openOrders.head(), end = openOrders.tail(); (e = e.getNext()) != end && e != null;) {
Order order = e.getValue();
}
に従いますが、それは投げるのではなく、nullになったときに、ループが停止したとして、それを反復処理しようとしたNullPointerExcetionに取得ヌルチェックを追加しましたNullPointerExcetion。 また、すべての要素を反復処理する必要があるので、これも問題です。
私は、iterationがvalues()を使用し、実際にはリストへのポインタであるという問題があると想定します。 リストをコピーしようとしましたが、コピープロセスでNullPointerExcetionも取得しました。 すべてのご意見
私はデザイン全体を変更することが最良の解決策であり、すべての挿入と読み取りでロックを使用することを知っています。私の問題を解決するために私が作ることができるいくつかの小さな変化がありますか?
Javolution 'FastMap'? IIRC、Javolutionはあらゆる種類の野生の主張をしましたが、実装は間違っていました。コンカレントコレクションが本当に必要な場合は、 'java.util.concurrent'を提案します。/'NullPointerException'には、トリガされた場所の詳細が含まれている必要があります。 –