私は、生物多様性の基準を扱うこの図書館と協力しなければなりません。基本的に、csv、xml などを読み込んで検証し、DarwinCoreRecordタイプのレコードを反復処理できるようにします。
何らかの奇妙な理由で、オブジェクトがイテレータから移動されるとすぐに、そのオブジェクトは消えてしまいます。以下の小さな例:
ArrayList<DarwinCoreRecord> dwc = new ArrayList<DarwinCoreRecord>();
for(; iter.hasNext();) {
DarwinCoreRecord record = iter.next();
System.out.println(record.getSomeValue());
dwc.add(record);
}
その print ステートメントは完璧で、適切な詳細を出力します。その print ステートメントを for ループの外側に出力すると、すべてが null になります。
だから、私の質問に(誰かが上記を解決できない限り)。この DarwinCoreRecord を拡張するスケルトン クラスを作成しました。正確には次のようになります。
public class DWCRecordStore extends DarwinCoreRecord {
public DWCRecordStore() {
}
}
これは、私の計画が機能するかどうかをテストするためのものでしたが、classcastexception が発生しています。キャストを扱ってからしばらく経ちますが (少なくとも Java では)、問題はありません。DWCRecordStore から DarwinCoreRecord にキャストしていないので、問題はわかりません。
私が見逃したギラギラしたものを見た人はいますか?
前もって感謝します。
編集:申し訳ありませんが、ここにエラーがあります:
java.lang.ClassCastException: org.gbif.dwc.record.DarwinCoreRecord cannot be cast to com.encima.DWCRecordStore
at com.encima.DroolsTest.main(DroolsTest.java:37)
編集 2: キャスティングの使用を追加しました。
DWCRecordStore drs = new DWCRecordStore();
DarwinCoreRecord dwc = iter.next();
drs = (DWCRecordStore) dwc;