用Java查询KDB

时间:2018-11-15 14:52:57

标签: kdb

我有一个String列表,称为Kdb中的Trade。

我下面有一个代码段来打印表格内容:

class AppRecommmend extends PureComponent{
    constructor(props){
        super(props);
        this.state = {
            isLoading:false,
        };
    }
    render(){
        console.log(this.props.appRecommendData.type); //will show undefined
        return(
        <div className="component-AppRecommend">
        {this.props.appRecommendData.map(appRecommendData=>(
            <AppRecommmendCol
            imgSource={appRecommendData["im:image"][1].label}
            title={appRecommendData["im:name"].label}/>
        ))}
        </div>
    );}
}
AppRecommmend.propTypes = {
  appRecommendData: PropTypes.oneOfType([
      PropTypes.object,
      PropTypes.array
  ])
}
export default AppRecommmend

我看到的所有输出都不可读。我在这里想念什么吗?预先感谢

输出:

c.Flip flip=(c.Flip)c.k("0!select from Trade");

for(int row=0;row<n(flip.y[0]);row++){

for(int col=0;col<flip.x.length;col++)

System.out.print((col>0?",":"")+c.at(flip.y[col],row));

System.out.println();

}

1 个答案:

答案 0 :(得分:2)

您看到的是java.lang.Object的默认toString()实现。

https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--

  

Object类的toString方法返回一个字符串,该字符串包括该对象是其实例的类的名称,符号字符“ @”以及该对象的哈希码的无符号十六进制表示形式。换句话说,此方法返回的字符串等于:

 getClass().getName() + '@' + Integer.toHexString(hashCode())

类名称为[C,这意味着它是一个char数组,这意味着查询将返回(10) char vectors。最简单的方法(虽然不美观)将是替换

for(int col=0;col<flip.x.length;col++)
System.out.print((col>0?",":"")+c.at(flip.y[col],row));
System.out.println();

使用

for(int col=0;col<flip.x.length;col++) {
    Object rowValue = c.at(flip.y[col],row);
    System.out.print((col>0?",":"") + (rowValue instanceof char[] ? (char[]) rowValue : rowValue));
}
System.out.println();

或者,您可以使用Arrays.deepToString()方法,但这将在字符串的结尾处包含方括号。

List<Object> rowData = new ArrayList<>();
for(int col=0;col<flip.x.length;col++) {
    rowData.add(c.at(flip.y[col],row));
}
System.out.println(Arrays.deepToString(rowData.toArray()));