1

我正在尝试将kx.cflip对象转换为字符串:

String test = (String) c.at(flip[0],1)

但是,我收到一条错误消息,指出我无法将 C 对象转换为 String。有谁知道我可以转换一个 kx C 对象来返回一个字符串吗?

4

2 回答 2

0

Ac.Flip是从键到值的映射。特别是,它有String键和Object值,分别存储在两个数组里面Flip(分别称为xy)。

如果要获取键“foo”的值,则可以执行以下操作:

c.Flip myFlip = ...; // Get hold of your flip
Object value = myFlip.at("foo"); // Throws ArrayIndexOutOfBoundsException if "foo" is not found

如果您碰巧知道该值将是 a String,那么您可以强制转换它:

String strValue = (String) value; // Throws ClassCastException if value isn't a String

您还可以将最后两行合二为一,如下所示:

String strValue = (String) myFlip.at("foo");
于 2012-02-09T11:51:17.283 回答
0

不太清楚“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;
于 2012-02-09T15:45:21.253 回答