我想投kx.c
类flip
对象为字符串:java的KDB - 铸件C字符串
String test = (String) c.at(flip[0],1)
但是我得到一个错误,说明我不能投C对象为String。有谁知道我可以施放一个kx C对象来返回一个字符串吗?
我想投kx.c
类flip
对象为字符串:java的KDB - 铸件C字符串
String test = (String) c.at(flip[0],1)
但是我得到一个错误,说明我不能投C对象为String。有谁知道我可以施放一个kx C对象来返回一个字符串吗?
不太清楚“C对象”究竟意味着什么,但我认为它是一个char数组 - 表示Kdb字符串的Java类型。这里是你可以做什么:
Object[] data = this.flip.y;
Object[] columnData = (Object[]) data[row];
char[] data = (char[]) columnData[i];
return String.valueOf(data);
如果你正在尝试检索KDB符号那么这将是一个字符串数组。
Object[] data = this.flip.y;
Object[] columnData = (Object[]) data[row];
String data = (String) columnData[i];
return data;
A c.Flip
是从键到值的映射。特别是,它具有String
键和Object
值,分别存储在Flip
(分别称为x
和y
)内的两个数组中。
如果你想获得的关键“foo”的值,那么你可以做这样的事情:
c.Flip myFlip = ...; // Get hold of your flip
Object value = myFlip.at("foo"); // Throws ArrayIndexOutOfBoundsException if "foo" is not found
如果你碰巧知道该值将是一个String
,那么你可以施放它:
String strValue = (String) value; // Throws ClassCastException if value isn't a String
您还可以在最后两行合并为一个,像这样:
String strValue = (String) myFlip.at("foo");
获取(左括号)尝试此操作时,C不能转换为字符串 – syphon228 2012-02-09 17:02:12
忽略。有效。谢谢!!! – syphon228 2012-02-09 17:04:12
您将得到[C错误,因为您使用第二种算法 - 这是用于检索kdb符号而不是kdb字符串。 kdb符号和字符串是不同的,所以有不同的相应的java类型。 – algolicious 2012-02-10 10:13:59