繁体   English   中英

方法不能应用于给定类型

[英]Method cannot be applied to given type

public class HurdalQuentonA2Q1 {

  public static void main(String[] args) {

    double kgs ;

    double lbs ;

    double convertLBtoKG = convertLBtoKG(kgs, lbs) ;

  }
  static double convertLBtoKG(double lbs) {

    return lbs * 0.454 ; 


  }

  static double readWeight() {

    Scanner input = new Scanner(System.in) ;
    System.out.println("Enter your preferred system of weight measurement, k(for kg) or, p(for lb)") ;
    String userinput = input.nextLine() ;
      if(userinput == "p") {
        Scanner keyboard = new Scanner(System.in) ;
        System.out.println("Enter your dog's weight in lbs") ;
         double lbs = keyboard.nextDouble() ; 
          double kgs = convertLBtoKG ;

编译时弹出错误,指出

method convertLBtoKG in class HurdalQuentonA2Q1 cannot be applied to given types
required: double
found: double,double

我不知道是什么原因造成的

convertLBtoKG方法只有1个参数,但是您使用2个参数调用它。

static double convertLBtoKG(double lbs) 

将您的方法调用更改为:

double convertLBtoKG = convertLBtoKG(lbs) ;

您的convertLBtoKG方法:

static double convertLBtoKG(double lbs) {

被定义为需要一个double参数( double lbs )并返回double (单词static后面的double )的方法。 要使用它,您必须以与配置文件一致的方式来调用它:给它一个double参数,然后使用方法调用的值做一些事情,这将是方法返回的结果。 因此,代替

double convertLBtoKG = convertLBtoKG(kgs, lbs) ;

你要

lbs = convertLBtoKG(kgs);  // THIS IS STILL WRONG, SEE BELOW

(不要说double lbs = ...因为您已经声明了double lbs;更早)。

另外,在方法调用中使用之前,您需要为kgs分配一些东西。

编辑:尽管我试图修复给您错误的行,但这是完全错误的,并且不属于该行。 实际执行转换的代码在readWeight ,但是您永远不会调用readWeight 您需要在main中添加一些调用它的东西。 然后,在readWeight ,而不是以下行:

      double kgs = convertLBtoKG ;

这是您要调用convert方法的位置:

      double kgs = convertLBtoKG(lbs);

我认为您需要仔细研究程序流程的工作方式。 你的main程序有来电readWeight为了得到代码readWeight调用; 该语言不会自动将所有内容连接在一起,因为您已将convertLBtoKG放在mainreadWeight

您的convertLBtoKG的函数声明仅允许传递一个参数,但同时传递lbs和kgs。

您正在将两个double值传递给仅接受单个double参数的方法。 重载该方法以创建一个接受两个双精度值的方法,或者使用适当的参数对其进行调用。

您的方法仅获得1个参数加倍。 但是您在这里调用了convertLBtoKG(kgs,lbs) 2参数。

在编译时,编译器将尝试匹配参数的数量及其类型。 在这种情况下,您使用两个参数进行调用,但仅接受一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM