2012-02-09 3 views
2

Я пытаюсь бросить kx.c класс flip объект в строку:ява КДБ - литье C в строку

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

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

ответ

1

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

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

Если вы пытаетесь получить символ КДБ, то это будет массив строк.

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

Получение (левый кронштейн) C не может сбрасываться в строку при попытке этого – syphon228

+0

Игнорировать. Это сработало. Спасибо!!! – syphon228

+0

Вы получите ошибку [C, как вы использовали второй алгоритм, который предназначен для получения символа kdb, а не строки kdb. Значок kdb и строки разные, поэтому имеют разные соответствующие типы java. – algolicious

1

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"); 
Смежные вопросы