public class A
{
public static void main(String args[])
{
}
}
class B
{
private static void call
{
int x=9;
String name ="hello";
}
}
誰能告訴我如何訪問B類的私有方法場A類,並打印出來在A級 感謝ü..訪問私有方法字段
public class A
{
public static void main(String args[])
{
}
}
class B
{
private static void call
{
int x=9;
String name ="hello";
}
}
誰能告訴我如何訪問B類的私有方法場A類,並打印出來在A級 感謝ü..訪問私有方法字段
我們不應該嘗試直接訪問另一個類中的類的private
成員。這將完全違反訪問修飾符的規則。而且,如果您真的想訪問,則可以使用提供的Reflection
API。
一般情況下,爲了獲得private
類變量,你可以以訪問則該類之外創建public
getter和setter方法。
按設計你不能。修改該類,以便您要調用的方法對A可見。
也就是說,您可以使用反射來訪問B中的方法,字段等,但不能輕易使用「B.call()」這很可能是你想要做的。
你可以訪問其他類中的私有字段和方法,但整個問題是你不應該這樣做。他們是私人。
所以正確的做法是通過將它們公開給其他類。在字段(而不是方法)的情況下,您可以使用訪問器方法來執行此操作。
但是,如果您確實需要訪問私有字段或方法,您可以通過java.lang.reflect
來完成。
// Calling the static `call` method of `B` even though it's private:
Method m = B.class.getMethod("call");
m.setAccessible(true);
m.invoke(null);
但是,如果沒有真正的理由,你不應該這樣做。改正設計。
將其公開。 – Jite
沒有像「方法領域」這樣的概念。你既可以是一個方法的局部變量,也可以是一個實例或類的字段。 – Seelenvirtuose