autoJava中是否像C ++中一样有变量类型?
auto
一个例子:
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中的新功能
在问题被 编辑 之前回答:
不auto,Java中没有变量类型。可以通过以下方式实现相同的循环:
for ( Object var : object_array) System.out.println(var);
Java具有局部变量,其范围在定义它们的块内。 _与C和C 类似,但是没有auto或register关键字。 但是,Java编译器将不允许使用未明确初始化的局部变量,并且会产生编译错误(与C和C 不同,在该情况下,编译器通常只会发出警告)。_礼貌:Wikipedia。
不,在Java中没有像C ++这样的主流类型推断。有一个RFE,但是由于“将无法解决”而关闭,给出的原因是:
人类可以通过两种方式从类型声明的冗余中受益。首先,冗余类型可以作为有价值的文档- 读者不必搜索getMap()的声明来查找返回的类型。其次,冗余允许程序员声明预期的类型,从而受益于编译器执行的交叉检查。