我正在尝试理解Java 10本地变量类型推断。我似乎理解了它是什么,但我没有看到任何优势。所以我想知道引入这个功能的背后意图是什么。以下是我的一些观察,请纠正我是否有误。
For example, (unlike other languages) I can not just declare a variable like this
var abc;
I need to initialize it(But cannot initialize to null). So I don't really see any advantage whatsoever.
One of the other arguments I saw is that previously we had to declare a variable like this with its explicit types.
Map<User, String> userChannels = new HashMap<>();
Now I can do it like this
var userChannels = new HashMap<User, String>();
随着现代IDE(如IntelliJ IDEA)的支持代码自动补全功能,我无法想象这给上述情况带来了任何额外的优势。
我读到的其他一些观点是:
多态代码与var不兼容。
而且我不能将var用于非可指定类型,例如匿名类。
考虑到所有这些,为什么要引入这个功能呢?请有人能否澄清一下,如果我漏掉了什么。
Properties properties = new Properties() ;
这样的变量声明现在可以用var properties = new Properties();
来声明,有些人更喜欢这种方式。 - NielsNet