簡體   English   中英

在私有方法中從另一個類訪問對象

[英]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僅用於聲明的類中,因此不能從其他類中調用。 如果要使用它,則應在將其修改為protectedpublic后再使用。

通常,私有方法只能從同一類中進行訪問。 無法從外部類訪問私有方法。 但是,有一種方法可以從外部類訪問私有方法。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM