protected FieldType _Get <FieldType>(string fieldName)
{
IntPtr fieldId = AndroidJNIHelper.GetFieldID <FieldType>(this.m_jclass, fieldName, false);
if (AndroidReflection.IsPrimitive(typeof(FieldType)))
{
if (typeof(FieldType) == typeof(int))
{
return((FieldType)(ValueType)AndroidJNISafe.GetIntField(this.m_jobject, fieldId));
}
if (typeof(FieldType) == typeof(bool))
{
return((FieldType)(ValueType)AndroidJNISafe.GetBooleanField(this.m_jobject, fieldId));
}
if (typeof(FieldType) == typeof(byte))
{
return((FieldType)(ValueType)AndroidJNISafe.GetByteField(this.m_jobject, fieldId));
}
if (typeof(FieldType) == typeof(short))
{
return((FieldType)(ValueType)AndroidJNISafe.GetShortField(this.m_jobject, fieldId));
}
if (typeof(FieldType) == typeof(long))
{
return((FieldType)(ValueType)AndroidJNISafe.GetLongField(this.m_jobject, fieldId));
}
if (typeof(FieldType) == typeof(float))
{
return((FieldType)(ValueType)AndroidJNISafe.GetFloatField(this.m_jobject, fieldId));
}
if (typeof(FieldType) == typeof(double))
{
return((FieldType)(ValueType)AndroidJNISafe.GetDoubleField(this.m_jobject, fieldId));
}
if (typeof(FieldType) == typeof(char))
{
return((FieldType)(ValueType)AndroidJNISafe.GetCharField(this.m_jobject, fieldId));
}
return(default(FieldType));
}
if (typeof(FieldType) == typeof(string))
{
return((FieldType)AndroidJNISafe.GetStringField(this.m_jobject, fieldId));
}
if (typeof(FieldType) == typeof(AndroidJavaClass))
{
return((FieldType)AndroidJavaObject.AndroidJavaClassDeleteLocalRef(AndroidJNISafe.GetObjectField(this.m_jobject, fieldId)));
}
if (typeof(FieldType) == typeof(AndroidJavaObject))
{
return((FieldType)AndroidJavaObject.AndroidJavaObjectDeleteLocalRef(AndroidJNISafe.GetObjectField(this.m_jobject, fieldId)));
}
if (AndroidReflection.IsAssignableFrom(typeof(Array), typeof(FieldType)))
{
return(AndroidJNIHelper.ConvertFromJNIArray <FieldType>(AndroidJNISafe.GetObjectField(this.m_jobject, fieldId)));
}
throw new Exception("JNI: Unknown field type '" + (object)typeof(FieldType) + "'");
}