>
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
    17. Advanced Activation and Licensing
    18 Other usage scenarios

      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!