如何在Java中返回对象?

如何在Java中返回对象?,java,Java,我不知道这个代码有什么问题 public Polynomial negate(){ int i; for(i = 0; i<this.coefficients.length;i++){ this.coefficients[i] = -this.coefficients[i]; } return this; } public多项式否定(){ int i; 对于(i=0;i,应该通过另一种方法调用: Polynomial test =

我不知道这个代码有什么问题

public Polynomial negate(){

    int i;

    for(i = 0; i<this.coefficients.length;i++){

        this.coefficients[i] = -this.coefficients[i];
    }

    return this;

}
public多项式否定(){
int i;

对于(i=0;i,应该通过另一种方法调用:

Polynomial test = new Polynomial(4);

// Give values

test.negate().evaluate(5)
这是评估方法:

public double evaluate(double x){

    double result = 0;

    for(int i = 0; i< coefficients.length;i++){

        result +=coefficients[i] * Math.pow(x,i);

    }

    return result;

}
public双重评估(双x){
双结果=0;
对于(int i=0;i<系数长度;i++){
结果+=系数[i]*数学功率(x,i);
}
返回结果;
}

这取决于代码的其余部分。就其本身而言,您编写的代码看起来是有效的。在没有看到任何其他内容的情况下,我认为问题在于:

1)调用代码需要一个数组,而是接收一个多项式

要解决此问题,请将方法更改为返回int[],如下所示:

public int[] negate(){
    int i;
    for(i = 0; i<this.coefficients.length;i++){
        this.coefficients[i] = -this.coefficients[i];
    }
    return this.coefficients;
}
那你就要倒霉了。试着用这样的东西来代替它:

System.out.print(myPolynomial.negate());
myPolynomial.negate();
System.out.println(Arrays.toString(myPolynomial.coefficients));

显示您的完整代码。为了记录在案,您所做的充其量是有问题的。如果两个并发线程尝试在同一实例上同时调用您的方法,该怎么办?请给出显示您如何调用此方法的代码。您能提供有关使用否定的代码的其他信息吗?对我来说,这听起来像是您在尝试执行System.print(somepolymonery)。代码本身在我看来应该可以工作-return这在Java中很好。您需要使用
Arrays.toString(array)
以合理的方式打印数组内容。@fge这有什么可疑?大多数类不需要是线程安全的。默认情况下,我肯定不会使多项式类成为线程安全的。线程安全与问题无关。编辑您的问题。不要将澄清作为答案。另外:此代码中没有任何内容打印任何内容,所以它没有给出你在问题中描述的行为。我想你的意思是
System.out.print
;我想你的意思是
System.out.println(Arrays.toString(mPolynomial.coverties));
。哇,你说得对。我会做那些编辑。