【发布时间】:2017-10-25 05:07:04
【问题描述】:
如何在不使用数百个 if 的情况下循环和修改变量?
我目前有以下代码:
private int one = 5;
private int ten = 9;
private int hundred = 2;
private int thousand = 8;
public void checkBalance() {
if (one > 1) {
one *= 0.5;
}
if (ten > 1) {
ten *= 0.5;
}
if (hundred > 1) {
hundred *= 0.5;
}
if (thousand > 1) {
thousand *= 0.5;
}
}
然而,我想要一些方法来遍历这些变量并为每个变量做同样的事情。我不想使用 ArrayLists 和类似的东西,因为我需要它易于访问和阅读(例如,我调用 getOne、getHundred)
【问题讨论】:
-
用你的设置,你不能。将它们放在某种数组/列表中。
-
我不能,因为我也需要每个变量,这就是问题
-
你可以通过反射来做到这一点。首先查找
java.lang.Class的文档。不要忘记放弃这个想法,当你意识到它比一开始就使用适当的数据结构会有更多的工作和混乱。特别是,如果您想按名称访问值,请考虑将它们存储在Map的一种或另一种风格中。 -
也许最好的办法是编写一个方法
int f(int i)并调用它one = f(one)。然而,最初的问题很可能比使用变量one, ...thousand得到更好的解决。 -
将
int乘以double仅将结果存储在int中?
标签: java android arrays variables methods