方法中的不兼容类型

时间:2015-12-17 00:42:23

标签: java

编辑:最初,参数是数组。数组无法转换为双打。似乎工作正常,因为我将数组参数更改为double。这段代码已经解决了。

// 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;
}

2 个答案:

答案 0 :(得分:1)

下面是计算射弹距离的公式,powsin函数期望值为double。

(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;
        }
    }

答案 1 :(得分:0)

问题在于此代码

public class Product {
  private String productName;

  public Product(String productName) {
    setProductName(productName); // for validation
  }

  public String getProductName() {
    return this.productName;
  }

  public void setProductName(String productName) {
    if (productName == null || productName.length() == 0)
        throw new IllegalArgumentException("product name cannot be null or empty");
    this.productname = productName;
  }

Math.pow(myInitialVel, 2) 期望双倍而不是数组。

我无法从这段代码中看出,变量是应该更改为Math.pow还是应该选择数组的索引并转换为双精度