[英]Access an object from another class in private method
如何在Java的私有方法中從另一個類訪問對象?
從另一個類調用私有方法的簡單示例。
檔案:A.java
public class A {
private void message(){System.out.println("hello java"); }
}
文件:MethodCall.java
import java.lang.reflect.Method;
public class MethodCall{
public static void main(String[] args)throws Exception{
Class c = Class.forName("A");
Object o= c.newInstance();
Method m =c.getDeclaredMethod("message", null);
m.setAccessible(true);
m.invoke(o, null);
}
}
由於private僅用於聲明的類中,因此不能從其他類中調用。 如果要使用它,則應在將其修改為protected或public后再使用。
通常,私有方法只能從同一類中進行訪問。 無法從外部類訪問私有方法。 但是,有一種方法可以從外部類訪問私有方法。
import java.lang.reflect.Method;
public class PriavteMethodAccessTest{
public static void main(String[] args)throws Exception{
A test = new A();
Class<?> clazz = test.getClass();
Method method = clazz.getDeclaredMethod("message");
method.setAccessible(true);
System.out.println(method.invoke(test));
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.