java - 我的代码没有在测试类中获取 ArrayList 值
问题描述
我正在编写一个代码,它将计算国家的面积,它必须获取所有值(arraylist 中的省区和州区分开),然后将所有内容相加。
这是我的 Country Class 的代码:
import java.util.*;
public class Country implements Stats {
public String name;
ArrayList<Integer> provincesAreas = new ArrayList<>();
ArrayList<Integer> statesAreas;
public Country(String name, ArrayList<Integer> provincesAreas, ArrayList<Integer> statesAreas) {
super();
this.name = name;
this.provincesAreas = provincesAreas;
this.statesAreas = new ArrayList<Integer>();
}
public double computeArea() {
double parea=0;
for (Integer pA: provincesAreas) {
parea = parea + pA;
}
double sarea=0;
for (Integer sA: statesAreas) {
sarea+=sA;
}
return sarea+parea;
}
}
这是测试类构造函数
Country country = new Country ("Pakistan", new ArrayList<>(List.of(21, 62, 46, 98, 67, 34, 25, 9)), new ArrayList<>(List.of(1,2,3,4,5,6,7,8)));
System.out.println(country.computeArea());
它给我的输出是 362.0 但它应该给我 398.0 的输出
我该如何解决这个错误?
解决方案
在构造函数的第四行Country
,您不初始化参数。this.stateAreas
stateAreas
您的Country
构造函数应该是:
public Country(String name, ArrayList<Integer> provincesAreas, ArrayList<Integer> statesAreas) {
super();
this.name = name;
this.provincesAreas = provincesAreas;
this.statesAreas = statesAreas;
}
推荐阅读
- android - 如果Expo React Native App中的文本长度超过2行,如何显示阅读更多按钮
- python-3.x - 如何在python中创建一个可以运行其他python程序的终端
- kubernetes-helm - fluentd gelf插件参数设置
- c# - 从 ILogger 在控制台中显示日志对象
日志关键 - python - 什么是 sklearn.linear_model 中的 .linear_model
- canvas - 使用画布处理 getDispaymedia 流时,无法以原始分辨率传输。- 网络RTC
- javascript - 如何正确推送我的 ReactJS gh-pages?
- javascript - 如何在变量中分配逻辑或运算符
- javascript - Workbox Service Worker 不保存缓存
- javascript - 碰撞仅针对最后一个 DIV 触发