Java 类型不匹配:无法从double转换为double[]

Java 类型不匹配:无法从double转换为double[],java,arrays,constructor,double,Java,Arrays,Constructor,Double,Eclipse建议快速修复不做任何更改,只需突出显示double[],这可能是一个非常愚蠢的错误,但我无法理解。我想你的意思是 public class DSAStack { private int count; private double[] stack; public static final int default_capacity = 100; public DSAStack() { this.stack = stack[de

Eclipse建议快速修复不做任何更改,只需突出显示
double[]
,这可能是一个非常愚蠢的错误,但我无法理解。

我想你的意思是

public class DSAStack
{
    private int count;
    private double[] stack;
    public static final int default_capacity = 100;

    public DSAStack()
    { 
        this.stack = stack[default_capacity];
        this.count = 0;
    }

    public DSAStack(int capacity)
    { 
        this.stack = stack[capacity];
        this.count = 0;
    }
}
而且

this.stack = new double[default_capacity];

this.stack=stack[默认容量]
您尝试将值插入索引中的
堆栈
,该索引等于
默认容量
,即
双值
。因此错误

类型不匹配:无法从double转换为double[]

您需要使用
new

this.stack = new double[capacity];

this.stack=堆栈[默认容量]

堆栈是双[]。
堆栈[默认容量]为双精度。

double是一种类类型。nextDouble返回原语类型double。将数组更改为双数组


双精度[]A=新的双精度[尺寸]

你应该用新的:

this.stack = new double[default_capacity];

newstack[default\u capacity]
我建议您将第一个构造函数代码更改为
this(default\u capacity)
要使用
DSAStack(int)
,这将不会太重要。剩下的,看答案来理解这个问题。stack[capacity]在最后一个元素之后返回一个元素。是的,我觉得自己很愚蠢,一发布它就把它弄明白了。没问题,有时候会发生。请删除这个问题以避免对问题产生误解。我一找到答案就去删除它,但你们太快了,在我能回答之前就回答了,现在我不能。这没有意义,请使用基本类型数组
double[]
而不是
double[]
。所以这根本不是一个类数组。这是返回基元类型的
nextDouble
是什么?这是不清楚的。你应该尝试使用代码标签来格式化你的答案。如果英语对你来说不容易,至少代码是可读的;)
this.stack = new stack[default_capacity];