public class Test {
private long xBalance = 5L;
private long yBalance = 10L;
private long nuhuh = 20L;
public long getTotal() throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException{
long result = 0L;
for(Field field : this.getClass().getDeclaredFields()){
if(field.getName().endsWith("Balance")){
result += (long) field.get(this);
}
}
return result;
}
public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException {
System.out.println(new Test().getTotal());
}
}
输出
15
但这并不关心类型:如果你有一个以 结尾的整数Balance
,它会抛出一个异常。您可以随时添加代码来注意这一点。
再说一次,您可以创建一个集合并将所有内容存储在其中:
class Test {
private Map<String, Long> myBalances = new HashMap<>();
{
myBalances.put("savings", 500L);
}
public long getSavingsBalance(){
return myBalances.get("savings");
}
public long getTotal(){
long result = 0L;
for(long value : myBalances.values()){
result += value;
}
return result;
}
}