Platforms to show: All Mac Windows Linux Cross-Platform

Back to JavaClassMBS class.

JavaClassMBS.AllocateObject as JavaObjectMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Java MBS Java Plugin 4.3 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Allocates a new Java object without invoking any of the constructors for the object. #

Returns a reference to the object or nil on any error.

Does not work for array classes.
Throws InstantiationException if the class is an interface or an abstract class.

JavaClassMBS.Fields as JavaFieldMBS()

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Java MBS Java Plugin 25.3 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Queries the list of fields in the class.
Example
// List field names

Var vm as JavaVMMBS // your VM
Var jclass As JavaClassMBS = vm.FindClass("test")
Var fields() As JavaFieldMBS = jclass.Fields
Var fieldNames() As String

For Each field As JavaFieldMBS In fields
fieldNames.add field.Name
Next

MessageBox String.FromArray(fieldNames, EndOfLine)

This includes static fields.
Does not include items from super class.

JavaClassMBS.GetField(name as string, sig as string) as JavaFieldMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Java MBS Java Plugin 4.3 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Searches for the Field with the given Name and Signature.

Nil on any error.

The signature is a string derived from the field's type or method's arguments and return type, as shown here:

Java TypeSignature
boolean Z
byte B
char C
short S
int I
long L
float F
double D
void V
objects Lfully-qualified-class-name;
arrays [array-type
methods (argument-types)return-type

JavaClassMBS.GetMethod(name as string, sig as string) as JavaMethodMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Java MBS Java Plugin 4.3 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Searches the method with the given name and signature.
Example
Var jclass as JavaClassMBS
Var method as JavaMethodMBS

method=jclass.GetMethod("mymethod", "([Ljava/lang/String;)V")

Returns the method ID for an instance (non-static) method of a class or interface. The method may be defined in one of the the class's super classes and inherited by the class. The method is determined by its name and signature.

To obtain the method ID of a constructor, supply <init> as the method name and void (V) as the return type.

Nil on any error.

Throws NoSuchMethodError if the specified method cannot be found.

The signature is a string derived from the field's type or method's arguments and return type, as shown here:

Java TypeSignature
boolean Z
byte B
char C
short S
int I
long L
float F
double D
void V
objects Lfully-qualified-class-name;
arrays [array-type
methods (argument-types)return-type

Some examples using this method:

JavaClassMBS.GetStaticField(name as string, sig as string) as JavaFieldMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Java MBS Java Plugin 4.3 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Searches the static field with the given name and signature.

Nil on any error.

Some examples using this method:

JavaClassMBS.GetStaticMethod(name as string, sig as string) as JavaMethodMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Java MBS Java Plugin 4.3 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Returns the method ID for a static method of a class. The method is specified by its name and signature.
Example
Var jclass as JavaClassMBS
Var method as JavaMethodMBS

method=jclass.GetStaticMethod("main", "([Ljava/lang/String;)V")

Nil on any error.
e.g. the signature of the default static main method is "([Ljava/lang/String;)V" which means return type void at the end and before an array of string.

Some examples using this method:

JavaClassMBS.Methods as JavaMethodMBS()

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Java MBS Java Plugin 25.3 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Queries the list of methods in this class.
Example
// List method names

Var vm as JavaVMMBS // your VM
Var jclass As JavaClassMBS = vm.FindClass("test")
Var Methods() As JavaMethodMBS = jclass.Methods
Var MethodNames() As String

For Each Method As JavaMethodMBS In Methods
MethodNames.add Method.Name
Next

MessageBox String.FromArray(MethodNames, EndOfLine)

This includes constructors with name "<init>", private, protected, public and static methods.
Does not include items from super class.

JavaClassMBS.NewObject(methodID as JavaMethodMBS, args as memoryblock) as JavaObjectMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Java MBS Java Plugin 4.3 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Constructs a new Java object.

The method ID indicates which constructor method to invoke. This ID must be obtained by calling GetMethod with <init> as the method name and void (V) as the return type.

Returns nil on any error.

Programmers place all arguments to the method in an args memoryblock that immediately follows the methodID argument.
In the memoryblock you need to use 8 bytes per argument and align them correctly. (alignment depends on platform)

Throws Java InstantiationException if the class is an interface or an abstract class.

See also:

JavaClassMBS.NewObject(MethodID as JavaMethodMBS, args() as Variant) as JavaObjectMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Java MBS Java Plugin 19.4 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Constructs a new Java object.
Example
Var vm as JavaVMMBS // your initialized VM

// 1. Find class
Var jclass As JavaClassMBS=vm.FindClass("stringtest")

If jclass = Nil Then
MsgBox "Can't find stringtest class"
Return
End If

// 2. Call constructor
Var jmethod As JavaMethodMBS = jclass.GetMethod("<init>", "(ILjava/lang/String;D)V")

If jmethod = Nil Then
MsgBox "Can't find constructor"
Return
End If

Var param() As Variant
// 1. Parameter with Integer: I
param.Append 123
// 2. Parameter with string: Ljava/lang/String;
param.Append "Hello World"
// 3. Parameter with double: D
param.Append 3.14
Var jobject As JavaObjectMBS = jclass.NewObject(jmethod, param)

If jobject = Nil Then
MsgBox "Constructor failed!?"
Else
MsgBox "OK: "+jobject.ClassName
End If

The method ID indicates which constructor method to invoke. This ID must be obtained by calling GetMethod with <init> as the method name and void (V) as the return type.

Returns nil on any error.

Programmers place all arguments to the method in an args variant array that immediately follows the methodID argument.

Throws Java InstantiationException if the class is an interface or an abstract class.

This is generic version, where our plugin translates between native Xojo data types and Java data types. We support conversion of boolean, byte (integer), char (integer), short (integer), int (integer), long (int64), double, float (single) and Java objects. Objects can be JavaObjectMBS or subclasses including JavaStringMBS and the JavaArrayMBS subclasses. For your convenience you can pass in string and we convert to JavaStringMBS for you.

See also:

The items on this page are in the following plugins: MBS Java Plugin.


The biggest plugin in space...