1
のための不適切な型キャスト私はテーブルstrucruteを作成し、その中にデータを挿入するためにKDBで次のクエリを実行しました: -KDB:集計クエリ結果
n:1000000;item:`apple`banana`orange`pear;city:`beijing`chicago`london`paris;tab:([]time:asc n?0D0;n?item;amount:n?100;n?city);
私が選択するためにJavaプログラムを実行し、ポスト集約を伴う照会。コードは以下の通りである: -
import java.io.IOException;
import java.lang.reflect.Array;
import java.util.logging.Level;
import java.util.logging.Logger;
import kx.c;
public class Aggregate {
public static class KxTableModel {
private c.Flip flip;
public void setFlip(c.Flip data) {
this.flip = data;
}
public int getRowCount() {
return Array.getLength(flip.y[0]);
}
public int getColumnCount() {
return flip.y.length;
}
public Object getValueAt(int rowIndex, int columnIndex) {
return c.at(flip.y[columnIndex], rowIndex);
}
public String getColumnName(int columnIndex) {
return flip.x[columnIndex];
}
};
public static void main(String[] args) {
KxTableModel model = new KxTableModel();
c c = null;
try {
c = new c("localhost", 5001,":");
String query="select sum amount by city from tab";
// String query="0!select last price by sym from trade where date=last date";
model.setFlip((c.Flip) c.k(query));
} catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if (c != null) {try{c.close();} catch (IOException ex) {}
}
}
System.out.println(model.getRowCount());
System.out.println(model.getValueAt(1, 1));
}
}
は、上記のコードが実行された後、私に次のエラーが発生しました: -
Apr 14, 2016 9:30:10 AM Aggregate main
SEVERE: null
java.lang.ClassCastException: kx.c$Dict cannot be cast to kx.c$Flip
at Aggregate.main(Aggregate.java:40)
Exception in thread "main" java.lang.NullPointerException
at Aggregate$KxTableModel.getRowCount(Aggregate.java:17)
at Aggregate.main(Aggregate.java:47)
ありがとうhellomichibye。それはうまくいった。しかし、Javaを使用してKDBのキー付きテーブルを処理するにはどうすればいいですか?他の方法もありますか? –
finalオブジェクトres = c.k(クエリ); if(res instanceof c.Dict){ \t \t \t final c.Dict dict =(c.Dict)res; \t \t \t IF(c.Flipのinstanceof(dict.x)&& c.Flipのinstanceof(dict.y)){ \t \t \t \t最終c.Flipキー=(c.Flip)dict.x。 \t \t \t \t final c.Flip data =(c.Flip)dict.y; \t \t \t \tは//何かを \t \t \t} \t \t} – hellomichibye