我应该在Java 10中使用var吗?

Ant*_*ten 5 java java-10

鉴于我不能将var用于不可表示的类型(Nulls,Anonymous Classes,Some Single Method Class,最重要的是相交类型).我最好不要使用它以获得更好的可读性和一致性(鉴于它仅适用于本地类型)?

我有点觉得它会被滥用,

__CODE__

Imp*_*Fox 7

虽然这可能主要是基于意见的,但我会说:不,这不是邪恶的.

var只有在编译时变量的类型已经清除时,才允许使用关键字.此外,它将生成相同的字节码,因此没有什么可担心的.

在某些情况下null,var不允许.这不会使它变得邪恶,而是相当好.如果不是这种情况,那么Java将不再是静态类型.(但请注意,在您列出的大多数情况下允许这样做.)

此外,我没有看到您的示例有任何问题.既然你.returnsSomething()宁愿像.getPerson()现实世界那样,那么读者就会明白var是一个人.

  • 关于你的最后一段,假设`getPerson()`返回一个`Person`可能是有效的,但这并不重要.注意OP是如何编写一个像`someObj.getSomeValue().getSomethingElse().returnSomething()`这样的表达式,不知道什么类型的`getSomeValue()`或`getSomethingElse()`正在返回.这与编写`var x = someObj.getSomeValue(); var y = x.getSomethingElse(); y.returnsSomething()`... (6认同)