The following information pertains to marshalling three dimensional arrays of char,
(i.e. char[][][]).
Single dimensional char arrays are converted into String arrays, and then marshalled as normal.
Larger dimensions (2D, 3D, 4D and 5D) are converted into a String array with one less dimension, and then
marshalled. Larger dimensions are not supported, and will marshal as a message indicating that fact.
public void test3DCharArray() throws Exception {
Marshaller marshaller = new Marshaller(
Marshaller.FQCN_NEVER, Marshaller.SHOW_ACTUAL_TYPE);
char[] object11 = "abc".toCharArray();
char[] object21 = "def".toCharArray();
char[] object31 = "ghi".toCharArray();
char[][] object1 = { object11, object21, object31 };
char[] object12 = "abc".toCharArray();
char[] object22 = "def".toCharArray();
char[] object32 = "ghi".toCharArray();
char[][] object2 = { object12, object22, object32 };
char[][][] object = { object1, object2 };
Map map = marshaller.marshal(object);
BufferedWriter bw = new BufferedWriter(new FileWriter("c:\\temp\\3d-char-array.mm"));
map.marshal(bw);
bw.close();
}