public JObject New(JClass type, params object[] parameters) { try { IntPtr methodId = IntPtr.Zero; // Call constructor with no parameters if (parameters == null || parameters.Length == 0) { methodId = this.Runtime.JavaEnvironment.JNIEnv.GetMethodID(type.JavaClass, "<init>", "()V"); } else { // TODO: Add support for calling constructor with parameters. } IntPtr javaObject = this.Runtime.JavaEnvironment.JNIEnv.NewObject(type.JavaClass, methodId, new NativeValue()); return(new JObject(this, type.JavaClassName, type.JavaClass, javaObject)); } catch { throw new ArgumentException(this.Runtime.JavaEnvironment.CatchJavaException()); } }
public JObject New(string typeName, params object[] parameters) { JClass type = this.LoadClass(typeName); JObject obj = type.New(parameters); return(obj); }
public JClass LoadClass(string className, params object[] genericTypes) { try { string jniSignature = className.ToJniSignatureString(); IntPtr javaClass = this.Runtime.JavaEnvironment.JNIEnv.FindClass(jniSignature); JClass type = new JClass(this, className, javaClass); return(type); } catch { throw new ArgumentException(this.Runtime.JavaEnvironment.CatchJavaException()); } }
public T InvokeStaticMethod <T>(JClass javaType, string methodName, string javaReturnType, params object[] parameters) { return(this.ReturnMethodInvoke <T>(javaType.JavaClass, methodName, javaReturnType, parameters, false, (id, name, sig) => this.Runtime.JavaEnvironment.JNIEnv.GetStaticMethodID(id, name, sig))); }
public T GetStaticFieldValue <T>(JClass javaType, string fieldName, string fieldType = null) { return(this.ReturnFieldValue <T>(javaType.JavaClass, fieldName, fieldType, true, (id, name, sig) => this.Runtime.JavaEnvironment.JNIEnv.GetStaticFieldID(id, name, sig))); }
public void SetStaticFieldValue(JClass javaType, string fieldName, object newValue) { throw new NotSupportedException(); }