Class boxedType = toNativeConverter != null ? toNativeConverter.nativeType() : javaType;
NativeType nativeType = Types.getType(runtime, boxedType, annotations).getNativeType();
ToNativeType toNativeType = new ToNativeType(javaType, nativeType, annotations, toNativeConverter, null);
FromNativeType fromNativeType = new FromNativeType(javaType, nativeType, annotations, fromNativeConverter, null);
Variable variable;
Pointer memory = MemoryUtil.newPointer(runtime, symbolAddress);
variable = getNativeVariableAccessor(memory, toNativeType, fromNativeType);
return toNativeType.getToNativeConverter() != null
? getConvertingVariable(variable, toNativeType.getToNativeConverter(), fromNativeType.getFromNativeConverter())
: variable;
}