【发布时间】:2016-02-11 22:32:02
【问题描述】:
这是一些示例代码(假设 Java 8)。
while (true){
Socket s = serverSocket.accept();
// some code here ... we don't assign anything to s again here ...
}
s 在循环内有效吗?
【问题讨论】:
-
我不这样做。假设我不这样做,我会询问“有效最终”。
-
@cricket_007:如果你从不那样做,那么
s实际上仍然是最终的。 -
@peter.petrov:这让我有点痛苦,但这个副本回答了你的问题。在 Java 8 中,这是有效的;在 Java 7 和更早的版本中,这要复杂得多。
-
@Reimeus:“有效最终”一词甚至适用于 Java 7 吗?
-
@cricket_007,除非我弄错了,否则它基本上是 Java 8 的东西。这与 lambda 何时可以引用外部变量有关。
标签: java