使用反射时需要注意哪些潜在问题?我对反射很困惑,为什么Java提供这种访问私有数据成员的功能。
私有: 就像我认为的那样,只有声明它的类才能看到它。
那么为什么可以在其他类中访问私有内容? 这个术语(反射)完全超出了我对Java中私有属性(访问限定符)的理解。
我访问了许多关于这个主题的链接,但没有给出关于这个主题的完整解释。 例如:
私有: 就像我认为的那样,只有声明它的类才能看到它。
那么为什么可以在其他类中访问私有内容? 这个术语(反射)完全超出了我对Java中私有属性(访问限定符)的理解。
我访问了许多关于这个主题的链接,但没有给出关于这个主题的完整解释。 例如:
package example;
import java.lang.reflect.Method;
class A{
private void privateMethod(){
System.out.println("hello privateMethod()");
}
}
class B{
public static void main(String[] args) throws Exception {
A d = new A();
Method m = A.class.getDeclaredMethod("privateMethod");
m.setAccessible(true);
m.invoke(d);
}
}
请详细解释一下这种方法的应用场景?私有方法在其他类中可访问的优缺点是什么?