|
|
1
3
您可以在变量上访问的字段和方法取决于其静态类型。
Pattern matching for
|
|
|
2
2
你所说的是所谓的流动型紧缩。你想要这个:
工作,因为特别是在这个范围内
这种想法存在一些根本问题:
这显然不应该奏效——这不太可能,但有可能
希望你能看到推理过度的普遍问题。当你写一些代码时,它会使调试变得异常复杂,而它并没有完成你想要的任务。它使编译器变得极其复杂。 现在,这并不意味着添加它是个坏主意。这只是对简单得多的事情的解释:
即使你认为这是错误的,那也不是重点。重点很简单,可以理解的是,选择不使用流式结构。 这就引出了下一点: …现在我们陷入了困境引入流类型 现在 将 破坏向后兼容性 。奇怪,但却是真的——这是因为在java中,方法参数是方法标识的一部分,因此,更改类型可以使完全相同的代码现在引用完全不同的方法。这是最新的香草java,如果你喜欢,可以试试:
这将打印
我们可以再深入研究一下为什么会设计这样的语言,但在4871年后的某个时候,我们会在这里,你会问“sooo,关于那个大爆炸”。这当然远远超出了这个问题的范围。 无论如何,考虑到java就是这样工作的,添加流类型会破坏一切。毕竟,想象一下我在上面的代码中所做的:
然后打印当前java
好消息仅仅因为其他语言是这样做的,并不意味着java必须遵循并打破这些东西,也不意味着java只需要坐在那里后悔。 您只需以不同的方式添加功能即可。这就是模式的用武之地 极大地 比这更复杂的功能,但它可以做的很多事情之一是:
这可以很好地工作,并避免了向后不兼容的问题。它还避免了对“..”的混淆。。但是如果
它还允许解构、模式匹配等等。 如果你想了解更多,这些事情会在openjdk邮件列表上进行详细讨论(如果你想知道所有细节,你会花几个星期的时间阅读)。valhalla-dev、amber-dev、core-lib-dev可能对此很感兴趣。这是的主页 amber-dev mailing list 。 |
|
|
DutChen18 · 如何在C宏中内联触发隐式指针转换? 2 年前 |
|
|
0xDED · 如何将泛型类强制转换为对象的泛型类? 2 年前 |
|
|
Niclas · 变量>-1如何在C中精确求值? 2 年前 |
|
|
Textime · 将Varchar2转换为时间 2 年前 |
|
|
xpt · Go,无法将类型*int32转换为类型*int64 2 年前 |