还在用Java8?一文教你跟着Spring源码学习Java全部语法新特性!
JDK 1.5
volatile 常用
源码位置:com.azure.core.http.rest.StreamResponse#consumed
private volatile boolean consumed;
private final HttpResponse response;
...
/**
* The content of the HTTP response as a stream of {@link ByteBuffer byte buffers}.
*
* @return The content of the HTTP response as a stream of {@link ByteBuffer byte buffers}.
*/
@Override
public Flux<ByteBuffer> getValue() {
if (response == null) {
return Flux.using(() -> this, ignored -> super.getValue(), response -> response.consumed = true);
} else {
return Flux.using(() -> response, HttpResponse::getBody, r -> {
consumed = true;
r.close();
});
}
}
/**
* Disposes the connection associated with this {@link StreamResponse}.
*/
@Override
public void close() {
if (this.consumed) {
return;
}
this.consumed = true;
if (response == null) {
final Flux<ByteBuffer> value = getValue();
value.subscribe().dispose();
} else {
response.close();
}
}
Jdk 17
关键字
permits、sealed
源码位置:org.springframework.http.HttpStatusCode
public sealed interface HttpStatusCode extends Serializable permits DefaultHttpStatusCode, HttpStatus {
int value();
···
}
浙公网安备 33010602011771号