![](/img/trans.png)
[英]Access private inner class, through a public outer class - from another class
[英]Access inner class private vars from outer class
我试图从外部类访问内部类内部的private val,而不创建内部类的实例。
甚至可以从the outer class
访问private inner class
值吗?
提前致谢。
如果该字段是static
,则即使它是private
,您也可以从外部类访问它。 您不需要内部或外部类的实例:
public class Clazz {
class Inner {
private static final int N = 10;
}
public static void main(String[] args) {
System.out.println(Inner.N);
}
}
如果内部类字段不是static
,那么没有内部类的实例就不会存在 。 您无法访问不存在的内容。
最简洁的答案是不。
更长的答案如下。 内部类只是一个常规类,它具有对其外部类实例的“魔术”引用,可以通过OuterClass.this
进行访问。 创建外部类实例不会自动创建内部类实例。 这意味着,除非内部类本身及其成员是static
否则根据定义,您不能在不创建内部类实例的情况下从外部类访问内部类的成员。
实际上,您可以创建一个外部类实例和10个相应内部类实例。 如何在不创建内部实例的情况下访问内部类的成员?
顺便说一句,一般建议:除非确实需要内部类,否则请避免创建内部类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.