Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Java方法需要返回类型_Java_Oop_Methods_Return Type - Fatal编程技术网

为什么Java方法需要返回类型

为什么Java方法需要返回类型,java,oop,methods,return-type,Java,Oop,Methods,Return Type,很抱歉,如果这是一个很无趣的问题,但我最近一直在尝试学习Java,发现很难接受返回类型的概念——我似乎找不到对它们的任何公平。然而,这里有一些关于它们如何偏离原始int返回类型的内容,从而拓宽了方法/函数可以返回的内容。然而,我仍然不太明白为什么:这有功能上的原因吗?也就是说,如果某行代码定义了某种返回,那么为什么解释器不能简单地返回某种返回。首先,Java是静态类型的,因此在不知道返回类型的情况下,无法将函数的响应分配给变量 它还可以在一定程度上自行记录功能 对于许多函数,null也可以返回。

很抱歉,如果这是一个很无趣的问题,但我最近一直在尝试学习Java,发现很难接受返回类型的概念——我似乎找不到对它们的任何公平。然而,这里有一些关于它们如何偏离原始int返回类型的内容,从而拓宽了方法/函数可以返回的内容。然而,我仍然不太明白为什么:这有功能上的原因吗?也就是说,如果某行代码定义了某种返回,那么为什么解释器不能简单地返回某种返回。

首先,Java是静态类型的,因此在不知道返回类型的情况下,无法将函数的响应分配给变量

它还可以在一定程度上自行记录功能


对于许多函数,
null
也可以返回。

是一种设计选择,用于在编译时捕获更多错误,而不是运行时。

我猜您隐含的问题是“为什么Java没有类型推断”,因为Java显然是一种静态类型语言,因此,返回类型必须是编译时已知的确定类型

对于这个问题的答案,您可以研究Scala的类型推断:它非常非常复杂和混乱,最终结果仍然是不稳定的。Java采用了简单的方法:没有类型推断。这也符合Java成为“蓝领语言”的既定设计目标:对于低技能的开发人员来说,显式键入更加明显和容易


作为记录,我注意到您提到了“Java解释器”,这表明您将Java误认为是一种动态的解释语言。Java是一种编译语言。

返回类型有助于强制执行。

+1在字节码中,始终需要返回类型。在字节码中,即使是构造函数和静态初始化器块也有一个返回类型
V
,它是
void
,对于任何不一致或误解表示歉意。那么最终,类型推断是由程序员来实现的吗?不管怎样,我本质上是在问,这是否是一种有意的语言简化方法,以提供编程方面的更多自由,或者是否有其他真正的原因/问题来解释为什么需要它。尽管如此,我还是真诚地感谢大家的回答。不,一种语言要么有要么没有类型推断。作为该语言的用户,您对此无能为力。必须提供每个方法的返回类型。如果需要动态类型,则必须使用
Object
作为返回类型,并在运行时确定值类型(这不是类型推断)。