繁体   English   中英

从外部类访问内部类私有变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM