The*_*e87 9 java class arraylist
我的书中有一个问题说(没有答案):
假设我们有一个使用标头声明的类Beta:
Run Code Online (Sandbox Code Playgroud)class Beta extends Alpha所以Beta是Alpha的子类,而在Alpha类中有一个带头的方法:
Run Code Online (Sandbox Code Playgroud)public int value(Gamma gam) throws ValueException编写一个名为addValues静态方法,该方法采用了一个对象,其可以是式的
ArrayList<Alpha>或ArrayList<Beta>,并且还类型的对象Gamma.对方法addValues的调用必须返回通过在ArrayList参数中的每个对象上添加值调用的结果而获得的总和,其中Gamma参数作为每次值调用的参数.在计算总和时,应忽略任何导致抛出ValueException类型异常的值调用.
我的尝试:
public static int addValues(ArrayList<? extends Alpha> arr, Gamma gam) {
int sum = 0;
for (int i = 0; i < arr.size(); i++) {
try {
sum += arr.get(i) + gam;
} catch (Exception e) {
i++;
}
}
return sum;
}
Run Code Online (Sandbox Code Playgroud)
虽然我知道对于初学者来说这条线sum += arr.get(i) + gam会给我一个错误,因为它们不是直接int的,可以添加.这本书没有提供关于这个问题的更多信息,所以我在这里写的是问题所需的一切.
Era*_*ran 10
您应该调用该value方法以获取您应该添加的值.
除此之外,您还可以使用增强的for循环来使代码更清晰.
public static int addValues(ArrayList<? extends Alpha> arr, Gamma gam)
{
int sum = 0;
for (Alpha alpha : arr) {
try {
sum += alpha.value(gam);
} catch (ValueException e) {
}
}
return sum;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1315 次 |
| 最近记录: |