The Java Decompiler is a work in progress.
Imports is partially done now. Currently, I'm picking up all the class names from the fields, and adding the classes to the imports section. In addition, generics in field names are now supported as well.
The generic names were picked up from the Signature attribute, which appears in the Attributes section of ClassFile, Method_Info, Field_Info structures of the class file. See JVM Specification, 4.7.
In 2017, with the release of Delphi 10.2 Tokyo, Embarcadero introduced a specialized implementation of the Observer pattern into the System.Classes unit. While it has been in the wild for 9 years, it remains a "hidden" architecture for many, primarily because it serves as the invisible engine behind LiveBindings. Other than live bindings, you can also use the Observer pattern as a way to update component settings to the Windows registry, an .ini file, or persist it elsewhere.
System.Classes