Java反射アクセスプライベートメンバー


field.setAccessible(true);
 

  
  
  
  
  1. import java.lang.reflect.*; 
  2.  
  3. public class Main 
  4.     class Test 
  5.     { 
  6.         private int id = 5
  7.          
  8.     } 
  9.      
  10.     public static void main(String[] args) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException, InstantiationException 
  11.     { 
  12.          
  13.         Field field = Test.class.getDeclaredField("id"); 
  14.         field.setAccessible(true);//suppress Java language access checking 
  15.          
  16.         Main m = new Main(); 
  17.         Test obj = m.new Test(); 
  18.         int id = field.getInt(obj); 
  19.          
  20.         System.out.println(id); 
  21.     }