the GenericData.Array returned should be iterated over, and .toString() called
on each element if you want to convert to a string.
GenericData.Array arr = rec.get("ids");
int size = arr.size();
String[] items = new String[size];
for (int i = 0; i < size; i++) {
items[i] = arr.get(i).toString();
}
toArray will produce an array with elements of type Utf8 (or CharSequence,
depending on the API you use). Casting doesn't do any conversion on reference
types.
On 4/27/11 8:22 AM, "Weishung Chung"
<[email protected]<mailto:[email protected]>> wrote:
Would it be possible to cast Array<String> to String[] ?
I was trying to cast it to String[] but i got a runtime error complaining about
Utf8 to String cast :(
Array<String> ids = (Array<String>) rec.get("ids");
String[] outputIds = (String[]) outputIdsArray.toArray(new String[ids.size()]);
Am I missing something here?
On Tue, Apr 26, 2011 at 10:39 PM, Felix.徐
<[email protected]<mailto:[email protected]>> wrote:
Key of Map is UTF8 type.
2011/4/27 Weishung Chung <[email protected]<mailto:[email protected]>>
Ok thank you for the answer :)
On Tue, Apr 26, 2011 at 4:24 PM, Scott Carey
<[email protected]<mailto:[email protected]>> wrote:
Strings are of Java type CharSequence
toString() on CharSequence is consistent between String and Utf8. However,
make sure any map you use has only one implementation of CharSequence in it,
since hashCode() and equals() on different CharSequence types may not be
consistent.
On 4/26/11 2:17 PM, "Weishung Chung"
<[email protected]<mailto:[email protected]>> wrote:
Hello Avro user,
I defined a map type in the schema with values of type double.
After reading the map from the schema, I realized that the key is of type avro
utils.utf8 and cannot be cast to java.lang.String
So, the following is not working when trying to loop through the entries of the
map.
for(Entry<String, Double> entry: map.entrySet())
Am I missing something ?
Thank you so much,