public String getJNIString() {
        if (jniString.equals("") == false) {
            return jniString;
        }

        if (fullyQualifiedClassName.equals("void") == true) {
            jniString = "V";
        } else if (arrayDims > 0) {
            for (int i = 0; i < arrayDims; ++i) {
                jniString += "[";
            }
            jniString += componentType.getJNIString();
        } else if (primitive == true) {
            if (fullyQualifiedClassName.equals("boolean") == true) {
                jniString = "Z";
            } else if (fullyQualifiedClassName.equals("long") == true) {
                jniString = "J";
            } else {
                jniString += Character.toUpperCase(fullyQualifiedClassName.charAt(0));
            }
        } else {
            jniString = "L" + fullyQualifiedClassName.replace('.', '/') + ";";
        }

        return jniString;
    }