/// <summary> /// Create an instance of a java object /// TODO : add the possibility to call an object constructor with arguments /// </summary> /// <param name="ClassName">name of the class to instantiate</param> /// <param name="javaClass">an empty java class pointer that will set if the class is found</param> /// /// <returns>A pointer to a java object in memory if the constructor could be called without error</returns> public IntPtr InstantiateJavaObject(string ClassName, out IntPtr javaClass, string signature = "()V", params object[] args) { // retrieve class pointer to create and object if (!usedClasses.ContainsKey(ClassName)) { try { javaClass = env.FindClass(ClassName); usedClasses.Add(ClassName, javaClass); } catch { throw new Exception(env.CatchJavaException()); } } else { javaClass = usedClasses[ClassName]; } try { IntPtr methodId = env.GetMethodID(javaClass, "<init>", signature); IntPtr javaObject = env.NewObject(javaClass, methodId, ParseParameters(javaClass, signature, args)); // Store for disposal usedObject.Add(javaObject); return(javaObject); } catch { throw new Exception(env.CatchJavaException()); } }
public void InstantiateJavaObject(string ClassName) { // need to create class before we can call any methods javaClassName = ClassName; try { javaClass = env.FindClass(javaClassName); IntPtr methodId = env.GetMethodId(javaClass, "<init>", "()V"); javaObject = env.NewObject(javaClass, methodId, new JValue() { }); } catch { throw new Exception(env.CatchJavaException()); } }
//CJW public IntPtr FindClassID(string ClassName) { try { return(env.FindClass(ClassName)); } catch { throw new Exception(env.CatchJavaException()); } }