我正在使用一个类来存储一些可以在整个应用程序中访问的字符串。看起来像:
public final class Settings {
public final static class Setting1 {
public final static String CONFIG = "A config string";
private Setting1 (){};
}
public final class Setting2 {
public final static String CONFIG = "A config string";
private Setting2 (){};
}
}
我发现我可以使用静态嵌套类(例如Setting1)或内部类(例如Setting2)。它们都可以以相同的方式使用:
System.out.println(Settings.Setting1.CONFIG); // Print: A config string
System.out.println(Settings.Setting2.CONFIG); // Print: A config string
因此,如果嵌套类仅包含最终的静态字段,则使用这两个字段有什么不同吗?由于使用私有构造函数,因此不允许实例化。这是否意味着这两个类现在相同?
如果嵌套/内部类不访问外部类的this,外部类没有非静态字段或方法,则应将其标记为静态。
实际上,这是另一回事:非静态内部类的外部开销为this:Settings.this
除了normal之外this
。
是的,您的情况肯定是这样。该内部类的原因/角色当然是样式/名称空间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句