没有返回类型的错误

时间:2011-05-24 19:09:29

标签: java

嗨我在我的方法中遇到错误,说我的方法没有返回类型,因为它有返回类型而令人困惑;

public double getPhoneRates() {

    final int freeminutes=50;
    double totalcharge;
    double chargeperminute = 0.10;
    double d = 0;

    if(b.regularService() == true){
        if(b.getMinutes()<=50)
            return totalcharge=0;
        else 
            d=b.getMinutes()-freeminutes;

        d = d * chargeperminute;
        return totalcharge= freeminutes +d;
    }
}

4 个答案:

答案 0 :(得分:5)

试试这个:

public double getPhoneRates()
{
  final int freeminutes = 50;
  double chargeperminute = 0.10;
  double d = 0;
  if (b.regularService() == true)
  {
    if (b.getMinutes() <= 50) return 0; //return 0
    else d = b.getMinutes() - freeminutes; 
    d = d * chargeperminute; 
    return freeminutes + d; //return result
  }

  return -1; //some default value
}

答案 1 :(得分:1)

检查你的牙套。您并不总是在方法中点击return语句。

答案 2 :(得分:1)

以下代码应该适合您:

public double getPhoneRates()
{
  final int freeminutes = 50;
  double chargeperminute = 0.10;
  double d = 0;
  if (b.regularService() == true)
  {
    if (b.getMinutes() <= 50) return 0;
    else d = b.getMinutes() - freeminutes;
    d *= chargeperminute;
    d += freeminutes;
  }
  return d;
}

在所有情况下,你的方法都应该有回报。

它通常是一个更好的代码,只返回一个方法的一个地方。

答案 3 :(得分:0)

如果你明白地复制了代码,那么一个右大括号}似乎就会丢失..此外,流程的所有分支似乎都没有返回。