簡體   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