1. Getting started
- 1.1. Installing Javonet
- 1.2. Activating Javonet
- 1.3. Adding References to .NET Libraries
- 1.4. XML Configuration File
- 1.5. Using the Javonet Fluent Interface
- 1.7. Introduction to Using .NET Back-end and UI Components in Java
2. Calling methods
- 2.1. Invoking Static Methods
- 2.2. Creating Instance and Calling Instance Methods
- 2.3. Calling Generic Methods
3. Working with .NET Objects
- 3.1. Creating Instance Of Generic Object
- 3.2. Extending the .NET Class in Java and Wrapping .NET Methods
4. Fields and Properties
- 4.1. Get/Set Values for Static Fields and Properties
- 4.2. Get/Set Values for Instance Fields and Properties
5. Methods Arguments
- 5.1. Passing Reference-Type Arguments
- 5.2. Passing Arguments by Reference with “ref” and “out” Keywords
- 5.3. Passing typeof(Type) as Method Argument
- 5.4. Calling Overloaded Method Passing Null Argument
6. Nested Types
7. Enums
8. Arrays and Collections
- 8.1. Arrays: Using Value-Type and Reference-Type Arrays
- 8.2. Working with .NET arrays and collections from Java with Javonet
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
- 15.. Handling Activation Issues
- 15.1. Handling .NET Exceptions
- 15.2. How to debug .NET code called from Java
- 15.3. Debugging Javonet Enabled Application
16. Strongly-Typed Wrappers
17. Advanced Activation and Licensing
- 17.1. Runtime vs. Offline vs. Compile Time Activation
- 17.2. Project Activation Tool
- 17.6. Delegating Activation Server
18 Other usage scenarios
Creating Instance Of Generic Object
Javonet allows you to create instances of generic objects. To initialize generic class first NType with expected generic type should be created. Next to initialize the instance of generic type call the “create()” method on NType object.
Important Notice that while initializing NType for generic class there is apostrophe with number of generic arguments provided which let’s Javonet recognize which generic class should be initialized. For example for List<T> class, the List<Strings> can be obtained by calling Javonet.getType(“List`1″,String”). As first argument we provide generic type name and number of generic arguments and as second argument the name of the type to be used as generic type. If class expects more then one generic type they should be passed as further arguments of getType method.
How to create instance of .NET generic class Dictionary<String,List<String>>
//Initialize List <String> type NType typeList = Javonet.getType("List`1","String"); //Get String type NType typeString = Javonet.getType("String"); //Initialize Dictionary<String,List<String>> type NType type = Javonet.getType("Dictionary`2",typeString,typeList); //Create instance of generic Dictionary NObject newDict = type.create(); //Create instance of generic List NObject newList = typeList.create(); //Add items to generic list newList.invoke("Add","a"); newList.invoke("Add","b"); //Adding items to generic Dictionary passing string as key and generic List as value newDict.invoke("Add","List1",newList); newDict.invoke("Add","List2",newList); //Retrieving dictionary item by string key NObject result = newDict.getIndex("List1"); //Displaying second item from generic List retrieved from dictionary System.out.println(result.getIndex(1)); //displays "b"