以下返回一个内部类的实例从一个静态方法是其中我不能改变用户的要求:在Java中
一类以一个静态接口(所有的方法都是静态的)。
一种具体的方法返回一个对象
ArrayList<String>
和一个File
对象。
以下是我执行上述要求:
其含有
ArrayList<String>
对象和对象File
内部类。具体方法初始化内部类的一个实例并在最后返回它。
不过,我不能没有创造外部类的一个实例来创建内部类的一个实例:
public class Outer
{
public class Inner
{
ArrayList<String> strings;
File file;
}
public static Inner method()
{
Inner inner = new Outer().new Inner();
...
return inner;
}
}
除了是“丑”,在new Outer().new Inner()
感觉相当不正确。
是否有不同的方法可以避免必须实例化外部类?
嵌套在其他地方使用的类是错误的设计。考虑分离它们。直接来自甲骨文,“_ [嵌套]是一种对仅在一个地方使用的类进行逻辑分组的方法:如果一个类仅对另一个类有用,则将其嵌入该类并将它们保持在一起是合乎逻辑的。嵌套这样的“帮手类”使他们的包更加简化._“ – Rainbolt