java - 这些参数应该是常量还是常规整数?
问题描述
我有这3个final,我不确定它们是否应该是final,下面有一个使用示例,请假设userNum被扫描,谢谢。
final int HUNDREDS_DIGIT = 100;
final int TENS_DIGIT = 10;
final int SINGLES_DIGIT = 10;
//Calculates and prints the difference between user number and its reverse.
System.out.println("User number is: " + userNum);
int firstDigit = userNum / HUNDREDS_DIGIT;
int secondDigit = userNum / TENS_DIGIT % TENS_DIGIT;
int thirdDigit = userNum % SINGLES_DIGIT;
int reversedNum = thirdDigit * HUNDREDS_DIGIT + secondDigit * TENS_DIGIT + firstDigit;
int difference = Math.abs(userNum - reversedNum);
解决方案
要确定这些值是否应该是最终值,您应该问自己是否希望它们的值在程序执行期间改变。
在我看来,如果这些值发生变化,它会产生不正确的结果,所以 final 是一个不错的选择。
也就是说,这些可能不必是常数,userNum /100 的意图相当明确。
推荐阅读
- git - Git 克隆私有 github 仓库
- windows - 如何为不同的项目类型使用相同的字符串资源
- sql - 展平sql分层数据
- java - Java/Scala - 将 xml 转换为 json
- java - 429 gitlab-api 上的请求太多
- javascript - 是否可以在实例化时检测给定类型的所有可调用方法,然后为每个方法动态创建转发过程
- r - 在 R 中安装包会出现以下错误
- visual-studio-code - 如何避免 VSCode 格式化部分代码
- http - 发布请求后如何删除帐户
- android - Firestore:存储架构更多领域或文档?在 Android 传感器应用程序中