外部Java类不能直接访问内部类的私有成员,但是可以通过内部类的公有方法或者使用反射来访问。
在Java中,内部类可以访问外部类的所有成员,包括私有成员。这是因为内部类实际上是外部类的一个成员,所以它可以访问外部类的所有成员。
如果外部类想要访问内部类的私有成员,可以通过内部类的公有方法或者使用反射来实现。
例如,以下是一个内部类访问外部类私有成员的示例:
public class Outer {
private int value = 10;
public class Inner {
public void printValue() {
System.out.println(value);
}
}
}
在这个示例中,内部类Inner
可以访问外部类Outer
的私有成员value
。
如果外部类想要访问内部类的私有成员,可以通过内部类的公有方法或者使用反射来实现。例如:
public class Outer {
private int value = 10;
public class Inner {
public void printValue() {
System.out.println(value);
}
}
public void printValue() throws Exception {
Inner inner = new Inner();
Field field = Inner.class.getDeclaredField("value");
field.setAccessible(true);
System.out.println(field.getInt(inner));
}
}
在这个示例中,外部类Outer
通过反射访问了内部类Inner
的私有成员value
。
总之,外部Java类不能直接访问内部类的私有成员,但是可以通过内部类的公有方法或者使用反射来访问。
领取专属 10元无门槛券
手把手带您无忧上云