我正在尝试将kx.c
类flip
对象转换为字符串:
String test = (String) c.at(flip[0],1)
但是,我收到一条错误消息,指出我无法将 C 对象转换为 String。有谁知道我可以转换一个 kx C 对象来返回一个字符串吗?
Ac.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
如果您碰巧知道该值将是 a String
,那么您可以强制转换它:
String strValue = (String) value; // Throws ClassCastException if value isn't a String
您还可以将最后两行合二为一,如下所示:
String strValue = (String) myFlip.at("foo");
不太清楚“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;