java - 变量可能尚未初始化。解决这个问题的最佳方法是什么?
问题描述
当我声明一个双变量时,我是否需要一直为每个变量分配一个值?我之所以这么问,是因为我试图运行下面的代码而不向 double var 添加任何值,但它说该变量未初始化。当我将值 0 添加到每个变量时,它会起作用。那么我是否必须一直为这些变量添加值?
public static double taxSingleCalculation (){
double taxbracket1 = 0, taxbracket2 = 0, taxbracket3 = 0, taxbracket4 = 0, taxbracket5 = 0, taxbracket6 = 0,taxbracket7 = 0;
if (income <=9950) {
taxbracket1 = income * taxRate10;
}
else{
taxbracket1 = 9950*taxRate10;
}
编译错误如下:
C:\Users\src\estimation.java:97:35
java: variable taxbracket2 might not have been initialized
解决方案
你得到“变量 taxbracket2 可能没有被初始化”的原因是你在方法textbracket2
代码的看不见的部分中使用了taxSingleCalculation
。您声明的每个变量在使用之前都必须明确分配一个值。
有几个选项可以解决这个问题:
- 如果方便的话,暂时注释掉使用未赋值变量的代码;
- 继续添加为变量分配“正确”值的代码(无论如何你最终都会这样做,对吧?);
- 做你所做的:为声明中的每个变量分配一个合理的“虚拟”初始值(例如零),并理解这个虚拟值最终将被适当的“真实”值替换。
至于最好的方法:我个人会投票给#2(现在没有时间,嗯?),但这完全取决于你。
推荐阅读
- regex - 正则表达式捕获组为空,除非我使用 [QSA] 标志
- logging - 使用 syslog.conf 和 asl.conf 转移日志
- c# - 单例实例“ConversationManager”已销毁。返回空
- laravel - 使用 Laravel Cashier 和多对多关系插入记录时出错
- php - Apache vhost 与 CI .htaccess 冲突
- java - 使用 Python 获取 java 的全局击键
- android - 使用 UIAutomator2 工具实现 Android 应用自动化
- python - 为什么这个 Keras OneHot 层实现与 OneHot 训练数据不同?
- javascript - 如何让用户在 HTML 中设置表格大小?
- javascript - 如果之前是全屏的,如何全屏打开 html 5 视频