>
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

      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");  
      }

      See Live Example!

      Similiar Articles