Java KDB - приведение C к строке - PullRequest
1 голос
/ 09 февраля 2012

Я пытаюсь преобразовать объект kx.c class flip в строку:

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

Однако я получаю сообщение об ошибке, утверждающее, что я не могу преобразовать объекты C в строку.Кто-нибудь знает, что я могу привести объект kx C, чтобы вернуть строку?

Ответы [ 2 ]

0 голосов
/ 09 февраля 2012

Не совсем уверен, что именно вы подразумеваете под "объектами C", но я предполагаю, что это массив символов - тип Java для представления строки Kdb. Вот что вы можете сделать:

Object[] data = this.flip.y;
Object[] columnData = (Object[]) data[row];        
char[] data = (char[]) columnData[i];
return String.valueOf(data);

Если вы пытаетесь получить символ kdb, то это будет массив String.

Object[] data = this.flip.y;
Object[] columnData = (Object[]) data[row];        
String data = (String) columnData[i];
return data;
0 голосов
/ 09 февраля 2012

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");
...