我们还可以对枚举类型使用反射

?[Copy to clipboard] Download enumReflection.java
 
    
    
    
    
  1. enum   enumReflection{  
  2.      aa {  
  3.         @Override  
  4.         public void test() {  
  5.    
  6.             // TODO Auto-generated method stub  
  7.             System.out.println("enum  aa");  
  8.    
  9.         }  
  10.     } , bb {  
  11.         @Override  
  12.         public void test() {  
  13.    
  14.             // TODO Auto-generated method stub  
  15.    
  16.         }  
  17.     }, cc {  
  18.         @Override  
  19.         public void test() {  
  20.    
  21.             // TODO Auto-generated method stub  
  22.    
  23.         }  
  24.     } ;  
  25.      private  static  int a ;  
  26.      private  static  int b ;  
  27.      public abstract void test();  
  28.   
 
 

在main方法中添加代码如下,就可以调用对应的方法了。

 

       
       
       
       
  1. /**  
  2. * 测是得到枚举类型  
  3. */  
  4. Class> myClass = enumReflection.class;  
  5. Object[] objsmyClass.getEnumConstants();  
  6. Class> enumObj=objs[0].getClass();  
  7. Method method=enumObj.getDeclaredMethod("test");  
  8. method.invoke(objs[0]);