我有一个叫做MultiplePrintableInvoiceData的类,这个类有一个内部类,它是一个名为Product的成员类。
我可以使用以下代码在另一个类中实例化Product实例:
MultiplePrintableInvoiceData pid = new MultiplePrintableInvoiceData();
MultiplePrintableInvoiceData.Product product = pid.new Product();
但是当我尝试使用以下代码实例化Product数组时:
MultiplePrintableInvoiceData.Product[] product = pid.new Product[];
我收到编译错误:“(”预期 - 表达非法开始。请我帮忙。
更新 我已将代码修改为:
MultiplePrintableInvoiceData.Product[] product = pid.new Product[11];
但它仍然给我一个错误!
答案 0 :(得分:3)
除非我们已有一个对象,否则无法创建内部类的对象 外部类。这是因为 inner 类的对象安静地连接到它所构成的外部类的对象。但是,如果您创建一个嵌套类( static 内部类),则它不需要对外部类对象的引用。
但是,创建内部类的数组时并非如此。在创建内部类的Array时,我们不能使用外部类的Object来引用内部类。因为,我们没有创建任何内部对象。我们只创建一个数组,它只是放置内部对象的地方。它不需要属于任何外部对象。
class Outer
{
class Inner
{
// field declaration and other code
}
}
//...........
Outer outerObj = new Outer();
Outer.Inner innerObj = outerObj.new Inner(); // instance creation of inner class
Outer.Inner[] innrArr = new Outer.Inner[5]; // array creation of inner class
根据您的具体情况,您需要:
MultiplePrintableInvoiceData.Product[] product = new MultiplePrintableInvoiceData.Product[10];