@Override
            public Character[] convertFromString(Class<? extends Character[]> cls, String str) {
                if (str.length() == 0) {
                    return EMPTY;
                }
                Character[] array = new Character[str.length()];
                int arrayPos = 0;
                int pos;
                while ((pos = str.indexOf('\\')) >= 0) {
                    for (int i = 0; i < pos; i++) {
                        array[arrayPos++] = str.charAt(i);
                    }
                    if (str.charAt(pos + 1) == '\\') {
                        array[arrayPos++] = '\\';
                    } else if (str.charAt(pos + 1) == '-') {
                        array[arrayPos++] = null;
                    } else {
                        throw new IllegalArgumentException("Invalid Character[] string, incorrect escape");
                    }
                    str = str.substring(pos + 2);
                }
                for (int i = 0; i < str.length(); i++) {
                    array[arrayPos++] = str.charAt(i);
                }
                return Arrays.copyOf(array, arrayPos);
            }