是的,使用反射可以破坏Java的封装性。特别是当你使用getDeclaredMethod()
和setAccessible(true)
这样的方法时,你可以访问一个类的private方法,即使这些方法被明确地标记为不对外部可见。
下面是一个简单的例子来说明这一点。假设有一个名为Person
的类,其中有一个私有方法privateMethod
:
public class Person {
private void privateMethod() {
System.out.println("This is a private method."