1. Getting started
2. Calling methods
3. Working with .NET Objects
4. Fields and Properties
5. Methods Arguments
6. Nested Types
7. Enums
8. Arrays and Collections
9. Embeding UI controls
10. Referencing libraries
11. Off-line activation
12. Events and Delegates
13. Disposing and Garabage Collection
14. .NET Configuration Files (AppConfig, WebConfig)
15. Exceptions, Debugging and Testing
16. Strongly-Typed Wrappers

    Calling Generic Methods

    With javOnet you can very easily invoke any generic instance or static method. To call a generic method, you need to provide types that will be used during the method invocation. Those types can be passed as an instance of NType objects initialized with particular .NET types. Let’s assume you have following .NET object you want to use from Java:

    class GenericSample 
    {
        public void MyGenericMethod<T>(T arg1) 
        {
              return;
        }
        public K MyGenericMethodWithTwoTypes<T,K>(T arg1) 
        {
              //Some operation
              return null;
        }
    }
    // Sample .NET usage
    GenericSample genSample = new GenericSample();
    genSample.MyGenericMethod<String>("sample");
    genSample.MyGenericMethodWithTwoTypes<String,Int32>("sample");

    If you want to call MyGenericMethod with type String, you need to use following piece of Java code in javOnet:

    // (..) initialize javonet + load your .NET dll
    //Create new instance of GenericSample class
    NObject genSample = Javonet.New("GenericSample"); 
    //Invoke generic method with one type
    genSample.generic(Javonet.getType("String")).invoke("MyGenericMethod","sample");
    
    //Invoke generic method with two types
    genSample.generic(Javonet.getType("String"),Javonet.getType("Int32"))
        .invoke("MyGenericMethodWithTwoTypes","sample");
    1. Create an instance of our GenericSample class.
    2. Using the generic method, initialize the generic method invocation by passing one or many generic types of arguments.
    3. Invoke your method with a sample argument.

    Javonet.getType(typeName) returns an instance of NType object attached to a specific .NET type. The instruction NType myType = Javonet.getType(“String”) is the Java equivalent of the .NET Type myType = typeof(String).

    See Live Example!