如何在java中实例化成员类的数组

如何在java中实例化成员类的数组,java,arrays,inner-classes,Java,Arrays,Inner Classes,我有一个名为MultiplePrintableInvoiceData的类,这个类有一个内部类,它是名为Product的成员类 我可以使用以下代码在另一个类中实例化Product的实例: MultiplePrintableInvoiceData pid = new MultiplePrintableInvoiceData(); MultiplePrintableInvoiceData.Product product = pid.new Product(); MultiplePrintableIn

我有一个名为MultiplePrintableInvoiceData的类,这个类有一个内部类,它是名为Product的成员类

我可以使用以下代码在另一个类中实例化Product的实例:

MultiplePrintableInvoiceData pid = new MultiplePrintableInvoiceData();
MultiplePrintableInvoiceData.Product product = pid.new Product();
MultiplePrintableInvoiceData.Product[] product = pid.new Product[];
但当我尝试用以下代码实例化产品数组时:

MultiplePrintableInvoiceData pid = new MultiplePrintableInvoiceData();
MultiplePrintableInvoiceData.Product product = pid.new Product();
MultiplePrintableInvoiceData.Product[] product = pid.new Product[];
我得到一个编译错误:“(“预期-表达式的开头非法。请告诉我需要帮助。”

更新 我已将代码修改为:

MultiplePrintableInvoiceData.Product[] product = pid.new Product[11];

但它仍然给了我一个错误!

除非我们已经有了一个内部类的对象,否则不可能创建内部类的对象 外部类。这是因为内部类的对象悄悄地连接到外部类的对象,而外部类是从外部类创建的。但是,如果创建嵌套类(静态内部类),则不需要引用外部类对象

但是,创建内部类数组时并非如此。在创建内部类数组时,我们不能使用外部类的对象引用内部类。因为,我们没有创建任何内部对象。我们只是创建一个数组,它只是放置内部对象的地方。它不必属于任何外部对象

对于您的上下文,您需要执行以下操作:

MultiplePrintableInvoiceData.Product[] product = new MultiplePrintableInvoiceData.Product[10];