Get/Set Values for Instance Fields and Properties
You are browsing legacy Javonet 1.5 (Java<>.NET bridge for Windows) documentation. Use the left side menu or click here to switch to latest Javonet 2.0 documentation. Javonet 2.0 allows you to use any module from
JVM, CLR, Netcore, Python, Ruby, Perl, NodeJS on Windows, Linux and MacOs
from any application created in Java, Clojure, Groovy, Kotlin, C#, F#, J#, VB.NET, Python, Perl, Ruby, JavaScript, TypeScript, C++ and GoLang
To set or get values of instance fields and properties, get or create an instance of the object from JAR library, and call "get(fieldOrPropertyName)" or "set(fieldOrPropertyName,newValue)" methods on NObject\JObject containing this field. Assuming we have a custom JAR library with the following class inside:
public class TestClass {
public TestClass() {
}
public static int MyStaticField;
public int MyInstanceField;
public static String SayHello(String name) {
return "Hello " + name;
}
public static int MethodExpectingPrimitiveInt(int arg) {
return arg * 2;
}
public static int MethodExpectingClassInteger(Integer arg) {
return arg * 2;
}
public int MultiplyByTwo(Integer arg) {
return arg * 2;
}
public <T> T MyGenericMethod(T arg1)
{
return arg1;
}
}
To set and get instance field from this class:
// Todo: activate Javonet
// add reference to library
Javonet.AddReference(resourcesDirectory + @"\TestClass.jar");
// create Java object
JObject sampleObject = Javonet.New("TestClass");
// set instance field
sampleObject.Set("MyInstanceField", 11);
// get instance field
int response = sampleObject.Get<int>("MyInstanceField");
// write result to console
Console.WriteLine(response);
Was this article helpful?