En Java, el valor de retorno dentro del bloque sincronizado parece un mal estilo. ¿Realmente importa

Tengo una Collections.synchronizedList of WeakReference, _components;

Escribí algo como lo siguiente, esperando que el cumplidor se quejara:

public boolean addComponent2(Component e) {
    synchronized (_components) {
        return _components.add(new WeakReference<Component>(e));
    }        
}

Pero el compilador está perfectamente satisfecho. Tenga en cuenta que List.add () devuelve VERDADERO. Entonces, cualquier salida de un bloque sincronizado libera el bloqueo, pero ¿no parece extraño? Es algo así como un "agujero" en el bloque, similar al uso de retorno en un bucle.

¿Te gustaría mantener un código como este?

Respuestas a la pregunta(2)

Su respuesta a la pregunta