java - 错误不兼容类型:意外返回值 - 遍历列表
Posted
技术标签:
【中文标题】java - 错误不兼容类型:意外返回值 - 遍历列表【英文标题】:java - error incompatible types: unexpected return value - iterating through a list 【发布时间】:2019-03-20 18:06:28 【问题描述】:我被要求编写代码来显示数字列表中整数的总和。我将利用已经为我声明的总变量,并使用 for 循环遍历列表的元素。
问题是我不断收到错误不兼容的类型:意外的返回值。'当我尝试将 main 方法中的 void 更改为 int 时,我收到错误“此处不允许 void 类型”。有关如何解决此问题的任何想法?
import java.util.ArrayList;
public class ArrayListTestProgram
public static void main(String args[])
int total = 0;
ArrayList<Integer> numbers;
numbers = new ArrayList<Integer>();
numbers.add(1);
numbers.add(45);
numbers.add(23);
numbers.add(87);
numbers.add(89);
numbers.add(213);
System.out.println("The ArrayList looks like this: " + numbers);
System.out.println("It has " + numbers.size() + " elements in it");
System.out.println("The 5th element in it is: " + numbers.get(4));
int sum = 0;
for (int i = 0; i < numbers.size(); i++)
sum += numbers.get(i);
return sum;
System.out.println(sum);
【问题讨论】:
【参考方案1】:去掉返回线:
for (int i = 0; i < numbers.size(); i++)
sum += numbers.get(i);
// return sum;
您的主要返回类型为void
,而您返回的是int
。
【讨论】:
嗨!我删除了该行并将 void 更改为 int,但我仍然收到错误 'void' type not allowed here' 您不应将void
更改为int
。您的 main 方法应始终返回 void
。它应该总是看起来像这样:public static void main(String[] args)
我将其保留为 void,但错误仍在弹出。有什么想法吗?【参考方案2】:
删除System.out.println(sum)
周围的打印并删除return sum
import java.util.ArrayList;
public class ArrayListTestProgram
public static void main(String args[])
int total = 0;
ArrayList<Integer> numbers;
numbers = new ArrayList<Integer>();
numbers.add(1);
numbers.add(45);
numbers.add(23);
numbers.add(87);
numbers.add(89);
numbers.add(213);
System.out.println("The ArrayList looks like this: " + numbers);
System.out.println("It has " + numbers.size() + " elements in it");
System.out.println("The 5th element in it is: " + numbers.get(4));
int sum = 0;
for (int i = 0; i < numbers.size(); i++)
sum += numbers.get(i);
System.out.println(sum);
【讨论】:
【参考方案3】:您不能为 main() 方法设置返回类型。它应该是无效的。 您可以创建新的静态方法
public static giveMeSumOfList(List<Integer> list)
int sum = 0;
for (int i = 0; i < list.size(); i++)
sum += numbers.get(i);
return sum;
之后你可以从 main 和其他静态方法调用这个方法。
【讨论】:
嗨!当我添加时,我得到错误无效的方法声明;需要返回类型 像这样重写 public static int giveMeSumOfList(List以上是关于java - 错误不兼容类型:意外返回值 - 遍历列表的主要内容,如果未能解决你的问题,请参考以下文章
java.lang.IllegalStateException:返回值类型不兼容