[英]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
放在main
和readWeight
。
您的convertLBtoKG的函数声明仅允许传递一个参数,但同时传递lbs和kgs。
您正在将两个double
值传递给仅接受单个double
参数的方法。 重载该方法以创建一个接受两个双精度值的方法,或者使用适当的参数对其进行调用。
您的方法仅获得1个参数加倍。 但是您在这里调用了convertLBtoKG(kgs,lbs) 2参数。
在编译时,编译器将尝试匹配参数的数量及其类型。 在这种情况下,您使用两个参数进行调用,但仅接受一个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.