>
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
Arrays: Using Value-Type and Reference-Type Arrays
With Javonet, you can use any value-type or reference-type arrays. Arrays can be retrieved from field or property values, returned as method invocation results, or passed as arguments or set to fields and properties. All array operations can be performed both on instance and static elements.
Using arrays is very simple. Value-typed arrays are translated into regular arrays of corresponding Java types. Reference-typed arrays are represented as array of NObject objects.
Starting with version 1.4hf34 you can also retrieve a mixed arrays of value and reference types. In such case you will received on Java side an Object[] which will consist of NObject items and Java value types like (float, double, int, etc..).
Example
//Sample .NET class public class Item { public string ItemName { get; set; } } public class Sample { public string[] GetItems() { return new string[] { "item1", "item2", "item3" }; } public Item[] GetRefItems() { return new []{ new Item("Item1"),new Item("Item2"), new Item("Item3")}; } public void DisplayArray(string[] items) { Console.Out.WriteLine("Displaying value-typed array"); foreach (var item in items) Console.Out.WriteLine(item); } public void DisplayArray(Item[] items) { Console.Out.WriteLine("Displaying ref-typed array"); foreach (var item in items) Console.Out.WriteLine(item.ItemName); } }
//Usage in Java //Retrieving array of strings NObject sampleObj = Javonet.New("Sample"); String[] items = sampleObj.invoke("GetItems"); for (int i=0; i<items.length;i++) { System.out.println(items[i]); } //Passing array of strings String[] stringArray = new String[] {"Item1","Item2","Item3"}; sampleObj.invoke("DisplayArray",new Object[] {stringArray}); //Retrieving array of .NET objects NObject[] refArray = sampleObj.invoke("GetRefItems"); for (int i=0; i<refArray.length;i++) { System.out.println(refArray[i].get("ItemName")); } //Passing array of .NET objects sampleObj.invoke("DisplayArray",new Object[] {refArray});