一尘不染

Java是否有自动类型推断功能?

java

autoJava中是否像C ++中一样有变量类型?

一个例子:

for ( auto var : object_array)
    std::cout << var << std::endl;

for( auto var : object_array)
    var.do_something_that_only_this_particular_obj_can_do();

我知道Java中有一个增强的for循环,但是有自动吗?如果不是,是否有这样做的技巧?我指的是C ++ 11中的新功能


阅读 435

收藏
2020-12-03

共1个答案

一尘不染

在问题被 编辑 之前回答:

auto,Java中没有变量类型。可以通过以下方式实现相同的循环:

for ( Object var : object_array)
  System.out.println(var);

Java具有局部变量,其范围在定义它们的块内。 _与C和C 类似,但是没有auto或register关键字。
但是,Java编译器将不允许使用未明确初始化的局部变量,并且会产生编译错误(与C和C
不同,在该情况下,编译器通常只会发出警告)。_礼貌:Wikipedia

不,在Java中没有像C
++这样的主流类型推断。有一个RFE,但是由于“将无法解决”而关闭,给出的原因是:

人类可以通过两种方式从类型声明的冗余中受益。首先,冗余类型可以作为有价值的文档-
读者不必搜索getMap()的声明来查找返回的类型。其次,冗余允许程序员声明预期的类型,从而受益于编译器执行的交叉检查。

2020-12-03