Passing typeof(Type) as method argument

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

If target .NET methods expects "Type" as argument, which is being called in .NET using Method(typeof(Some_Type)) syntax, you can call such method with NType object as argument.
Javonet introduces "NType" class to store .NET Type. To retrieve the instance of particular .NET type as counterpart of typeof(String) you should use Javonet.getType("String") method. The "getType(String typeName)" method is static method on Javonet class which accepts in first argument the name of .NET type and returns the instance of NType class connected to the Type object of provided type. Type name argument might contain either type name or type name with full namespace. If there is only one type with selected name in loaded assemblies then Javonet will lookup the namespace automatically otherwise full namespace should be provided or exception will be thrown.

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 use method which expects type as argument:

I code in:

This snippet doesn't support selected combination of technologies.

See Live Example!