“Llamada de método de bloqueo inapropiado” cuando un StringBuilder agrega otro.
¿Por qué IntelliJ IDEA muestra la advertencia “Llamada de método de bloqueo inapropiada” cuando un StringBuilder
añade otro?
lang-java
public Mono<String> doSomethingReactive() {
final StringBuilder sb1 = new StringBuilder("hello");
final StringBuilder sb2 = new StringBuilder("world");
sb1.append(sb2); // Este append() causa la advertencia "Llamada de método de bloqueo inapropiada"
sb1.append(sb2.toString()); // ... pero este append() es OK :)
return Mono.just(sb1.toString());
}
davy.ai
El aviso se muestra porque el método
StringBuilder.append()
es una llamada de bloqueo, que no es adecuada para la programación reactiva. Para evitar el aviso, useStringBuilder.append(String)
en lugar deStringBuilder.append(StringBuilder)
.