2014-03-28 85 views
0

package1中存在非公共類A.我想從package2中的另一個類B訪問此類的成員。我使用constructor.how創建了一個類A的實例,我將訪問類A中的字段和方法嗎?使用java反射從包外部訪問非公共類的成員

package package1; 
class A 
{ 
Integer i; 
} 

package package2; 
class B 
{ 
public void accessClassA() 
{ 

      Class aClass=Class.forName("package1.A"); 
      Constructor<?> con = aClass.getDeclaredConstructor(); 
      con.setAccessible(true); 
      //code to access fields of class A 

} 
} 

回答

1
  Class aClass=Class.forName("package1.A"); 
      Constructor<?> con = aClass.getDeclaredConstructor(); 
      con.setAccessible(true); 
      Object instance = con.newInstance(); 
      Field intField=aClass.getDeclaredField("i"); 
      intField.setAccessible(true); 
      Integer i=(Integer)intField.get(instance);