BMI计算器出现“symbol showValue() can't found”报错的技术咨询
解决BMI计算器中"symbol 'showValue()' can't found"错误
首先咱们来定位核心问题:你报错的代码行String x = bmi1.showCategory(showValue());里,直接裸写showValue()是不对的——showValue()是你Calculator类(或者bmi1对应的实例类)的非静态方法,必须通过对象实例来调用,就像你前一行double bmi = bmi1.showValue();那样操作才是正确的。
错误根源
Java中,非静态方法不能脱离对象实例直接调用,编译器找不到这个裸写的showValue()符号,所以抛出了找不到方法的错误。
两种修复方案
方案1:复用已计算的BMI变量(更高效)
既然你已经通过bmi1.showValue()算出了BMI值并存在bmi变量里,直接把这个变量传给showCategory()就行,不用重复调用方法:
double bmi = bmi1.showValue(); System.out.println("Your BMI index:" + bmi + "。"); // 直接复用已计算的bmi变量 String x = bmi1.showCategory(bmi); System.out.println("Your BMI level:" + x);
方案2:通过对象实例调用showValue()
如果一定要在参数里调用方法,记得加上bmi1.前缀,明确是调用这个对象的方法:
double bmi = bmi1.showValue(); System.out.println("Your BMI index:" + bmi + "。"); // 明确通过bmi1对象调用showValue() String x = bmi1.showCategory(bmi1.showValue()); System.out.println("Your BMI level:" + x);
额外小建议
优先选择方案1,既减少了一次方法调用的开销,也让代码逻辑更清晰——毕竟重复计算同一个值没有必要。
内容的提问来源于stack exchange,提问作者yvonne
相关产品推荐
相关产品推荐

