如何解决此类编译错误。
粗体部分是显示编译错误的地方。
DegreeDays.java:71: 'void' type not allowed here
System.out.println(***"\t"***(error here) +
list(test[counter]) + "\t\t\t" +
average_temp(test[counter], test[counter - 1]));
DegreeDays.java:71: 'void' type not allowed here
System.out.println("\t" + list(test[counter]) ***+
***(error here) "\t\t\t" +
average_temp(test[counter], test[counter - 1]));
答案 0 :(得分:4)
想象一下:
void foo() {
// doesn't matter
}
System.out.println("" + foo()); // What should happen here?
答案是爆炸 - 这就是javac正在做的事情。方法foo
具有“无效结果类型”(none,nada,zilch)。没有返回任何对象。永远。甚至不是空的。 “没有”,编译器将拒绝尝试使用“无”作为“某事”。
(具有“void结果类型”的方法与可以返回null
的方法不同 - 例如,返回类型是Object - 这样的方法仍然具有“非void“结果类型。”
快乐的编码。
答案 1 :(得分:0)
list
和average_temp
似乎很可能没有返回string
。
答案 2 :(得分:0)
System.out.print()
必须展示一些东西。因此,如果您在其中编写任何不返回任何内容的void
方法,则会显示错误。
所以在你的代码中:
System.out.println("\t" + list(test[counter]) + "\t\t\t" + average_temp(test[counter], test[counter - 1]));
我认为average_temp
的类型为void
。
答案 3 :(得分:0)
你尝试打印方法返回Nothing(void)。
我认为list()
方法检查是否返回string
或void
..
如果它返回void
,您必须从println
方法中删除它。