从Java中的静态方法返回内部类的实例

从Java中的静态方法返回内部类的实例,java,Java,以下是我无法更改的用户需求: 具有静态接口的类(所有方法都是静态的) 一个特定的方法返回一个ArrayList对象和一个文件对象 以下是我对上述要求的实现: 一个内部类,包含一个ArrayList对象和一个文件对象 特定方法初始化内部类的一个实例,并在最后返回它 但如果不创建外部类的实例,我无法创建内部类的实例: public class Outer { public class Inner { ArrayList<String> strings;

以下是我无法更改的用户需求:

  • 具有静态接口的类(所有方法都是静态的)

  • 一个特定的方法返回一个
    ArrayList
    对象和一个
    文件
    对象

  • 以下是我对上述要求的实现:

  • 一个内部类,包含一个
    ArrayList
    对象和一个
    文件
    对象

  • 特定方法初始化内部类的一个实例,并在最后返回它

  • 但如果不创建外部类的实例,我无法创建内部类的实例:

    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()
    感觉非常不正确


    为了避免实例化外部类,我可以采取不同的方法吗?

    如果将内部类设置为静态(即编写
    公共静态类内部
    ),则不需要外部类的实例;你可以写
    新的Outer.Inner()

    那么简单吗???男人。。。我本来应该一开始就尝试一下(我脑子里有这个想法,但不明白为什么会有帮助);thanksIt对于嵌套其他地方使用的类来说是一个糟糕的设计。考虑分开它们。直接从Oracle开始,“[Nesting]是一种逻辑上对只在一个地方使用的类进行分组的方法:如果一个类只对另一个类有用,那么将其嵌入该类并将两者保持在一起是合乎逻辑的。嵌套这样的“帮助器类”使其包更加精简。”