You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:25:09