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
Enums: How to Work With .NET Enum Type
To use .NET enums in your Java project, javonet API provides special NEnum type. Using this class you can keep the reference of particular enum value, get/set the enum value, pass the enum value as method argument or compare enum values.
To initialize reference to .NET enum type you can use the NEnum(String enumTypeName, String enumValue) constructor. As first argument you must provide enum type name with or without namespace. When namespace is not provided Javonet will automatically lookup the enum type in all loaded assemblies, if there is only one type with provided name it will be used. In second argument selected enum value should be provided.
How to initialize NEnum object
Sample enum definition in .NET:
public enum SampleEnum { ValueOne, ValueTwo, ValueThree }
Enum usage in Java:
//Create instance of enum value NEnum sampleEnumValueOne = new NEnum("SampleEnum","ValueOne"); //Display enum value name System.out.println(sampleEnumValueOne.getValueName()); //displays "ValueOne" //Display enum value System.out.println(sampleEnumValueOne.getValue()); //displays "0"
How to get/set enum value and pass enum as method argument
Sample code in .NET
public enum SampleEnum { ValueOne, ValueTwo, ValueThree } public class Sample { public SampleEnum EnumField { get; set; } public void MethodA(SampleEnum value) { Console.Out.WriteLine(value); } }
Usage in Java
NObject sampleObj = Javonet.New("Sample"); //Set enum as property value sampleObj.set("EnumField",new NEnum("SampleEnum","ValueTwo")); //Get enum from property NEnum enumValue = sampleObj.<NEnum>get("EnumField"); System.out.println(enumValue.getValueName()); System.out.println(enumValue.getValue()); //Pass enum as method argument sampleObj.invoke("MethodA",enumValue); //Check enum value if (enumValue.equals(new NEnum("SampleEnum","ValueTwo"))) { System.out.println("Enum returned from EnumField equals ValueTwo"); } else { System.out.println("Enum returned from EnumField does not equal to ValueTwo"); }