Java 我的对象[]数组正在使我的程序崩溃。我做错了一件事
所以。我正在尝试在我的超类中创建一个对象数组。。让我们用一个常见的例子:汽车 我已初始化数组:Car[]cars={new CarFord,Sedan,Focus,17950} 然而,这些数据正在破坏我的程序。我已经研究了几个小时,但我找不到解决办法。要么我的措辞不正确,要么我只是看得不够仔细 下面是代码的pastebin示例:Java 我的对象[]数组正在使我的程序崩溃。我做错了一件事,java,arrays,object,Java,Arrays,Object,所以。我正在尝试在我的超类中创建一个对象数组。。让我们用一个常见的例子:汽车 我已初始化数组:Car[]cars={new CarFord,Sedan,Focus,17950} 然而,这些数据正在破坏我的程序。我已经研究了几个小时,但我找不到解决办法。要么我的措辞不正确,要么我只是看得不够仔细 下面是代码的pastebin示例: 这不是放置此行的有效位置: Car[] cars = {new Car("Ford", "Sedan", "Focus", 17950)}; 它需要位于方法体内部,
这不是放置此行的有效位置:
Car[] cars = {new Car("Ford", "Sedan", "Focus", 17950)};
它需要位于方法体内部,例如在主方法中您的cars字段是一个实例字段,这意味着为每个Car实例构造一个新字段。由于cars字段初始值设定项本身构造了一个新的Car实例,因此可以得到无限递归。解决方案是将cars字段设置为静态或将其放在不同的类中。这里解释了问题,但要提出正确的解决方案,我们需要知道您希望应用程序执行的操作。顺便说一句:如果您的代码抛出一些异常,您应该始终包括堆栈跟踪并突出显示行,这导致了异常。我认为这会造成某种内存泄漏。。意思是它在运行,但它就像一个叉子炸弹,在这个意义上,我必须终止它由于滞后或一些奇怪的事件。不。这只是一个无休止的递归,淹没堆栈内存,最终导致StackOverflowException和程序异常终止。虽然并非不可能,但在Java中创建真正的内存泄漏是相当复杂的;这是一个有效的字段声明和初始化。把它放在汽车类的顶层是错误的,但那是因为另一个原因。所以基本上我不能在超类中隐藏数组?我得把它放在主楼里?
Car[] cars = {new Car("Ford", "Sedan", "Focus", 17950)};