Java 方法中的不兼容类型

Java 方法中的不兼容类型,java,Java,编辑:最初,参数是数组。无法将数组转换为双精度数组。自从我将数组参数更改为双精度后,似乎工作正常。这个密码被破解了 // private instance variables private double myRangeMeters, myRangeFeet, myInitialVel, myRadians; Catapult(double initialVel, double radians) { myRangeMeters = 0.0; myRangeFeet = 0.0;

编辑:最初,参数是数组。无法将数组转换为双精度数组。自从我将数组参数更改为双精度后,似乎工作正常。这个密码被破解了

// private instance variables
private double myRangeMeters, myRangeFeet, myInitialVel, myRadians;

Catapult(double initialVel, double radians)
{
    myRangeMeters = 0.0;
    myRangeFeet = 0.0;
    myInitialVel = initialVel;
    myRadians = radians;
}

public void calcProjectileDist()
{
    myRangeMeters = (Math.pow(myInitialVel, 2) * Math.sin(2 * myRadians)) / 9.8;
}

public void convertMetersToFeet()
{
    myRangeFeet = myRangeMeters * 3.28084;
}

public double getProjectileDist()
{
    return myRangeFeet;
}

问题在于这个代码

Math.pow(myInitialVel, 2) 
Math.pow
要求的是双精度而不是数组


我无法从该代码中判断变量是否应更改为双倍,或者是否应选择数组的索引并转换为双倍

下面是计算射弹距离的公式,
pow
sin
函数期望值为双倍

(Math.pow(speed,2) * Math.sin(angle * 2))/9.8
因为你有一个初始值和弧度的数组,所以你应该在每个元素之间循环,然后在另一个数组中循环距离

public void calcProjectileDist()
    {
        double [] rangeMeters=new double[myInitialVel.length];
        for(int i =0; i<myInitialVel.length;i++){
            rangeMeters[i]=(Math.pow(myInitialVel[i], 2) * Math.sin(2 * myRadians[i])) / 9.8;
        }
    }
public void CalcProject列表()
{
double[]rangeMeters=新的double[MyInitialLevel.length];

for(int i=0;iNot me.我明白为什么了,但问题是,我试图处理过多的int(现在加倍),但我不会用42行不同的数字调用一个方法。我不理解你的评论。我的程序是计算一个物体在六个发射角和七个发射速度下的弹射距离,并将结果存储在二维数组中。因此,给定六个角和七个速度,它需要如果我想给一个方法提供参数并完全摆脱自定义构造函数,那么我需要为同一个对象重新调用42个参数或为一个方法调用42个变量。使用数组有没有更简单的方法?加上1(+1)对于英式英语,嗯?你在哪里看到英式英语?嗯,自从编辑后就没有了。似乎有人被它吓跑了。