Warum nur mark () und reset () in java.io.InputStream synchronisiert werden?

8

Verstehe nicht, warum mark () und reset () synchronisiert sind und warum read () nicht?

    
xin zhao 11.06.2015, 08:03
quelle

1 Antwort

4

java.io.InputStream ist eine abstrakte Klasse. Es verfügt über eine Standardimplementierung für mark / reset, die beim Zurücksetzen nur eine Ausnahme auslöst, die nicht unterstützt wird, so dass Unterklassen, die dies nicht unterstützen, keine eigene Methode codieren müssen, die die Ausnahme auslöst. "synchronisiert" ist für den Standardfall nicht nützlich, um eine Ausnahme auszulösen.

Jede Unterklasse, die dies unterstützt, muss diese Methoden überschreiben, und die Synchronisation wird nicht übernommen, sodass die überschriebenen Methoden synchronisiert werden können oder nicht.

Ich denke, es hat keine Wirkung.

Ich denke, es ist ein Konstruktionsfehler ohne Konsequenzen oder vielleicht ist es eine Warnung, so dass Programmierer es unterlassen, diese Methoden zu synchronisieren, weil es so gemacht werden sollte.

    
aalku 11.06.2015 08:50
quelle

Tags und Links