Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的对象[]数组正在使我的程序崩溃。我做错了一件事_Java_Arrays_Object - Fatal编程技术网

Java 我的对象[]数组正在使我的程序崩溃。我做错了一件事

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 CarFord,Sedan,Focus,17950}

然而,这些数据正在破坏我的程序。我已经研究了几个小时,但我找不到解决办法。要么我的措辞不正确,要么我只是看得不够仔细

下面是代码的pastebin示例:


这不是放置此行的有效位置:

Car[] cars = {new Car("Ford", "Sedan", "Focus", 17950)};

它需要位于方法体内部,例如在主方法中

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