


Warum ist die „clone()'-Methode von Java geschützt und nicht Teil der „Cloneable'-Schnittstelle?
Geschützte Clone()-Methode in Java: Eine rätselhafte Entscheidung
Java's clone() ist eine besondere Methode, die in java.lang geschützt ist. Objekt. Warum diese verwirrende Entscheidung?
Klonbare Schnittstelle kann nicht genutzt werden
Im Gegensatz zu anderen Frameworks, in denen kopierbare Klassen eine klonbare Schnittstelle implementieren, wird Javas clone() in Cloneable nicht deklariert. Eine Prüfung der Klonbarkeit über die Schnittstelle ist daher nicht möglich. Code wie „if(a instanceof Cloneable)“ kann nicht ermitteln, ob „a“ das Klonen unterstützt.
Reflexionsabhängigkeit
Um diese Einschränkung zu umgehen, kann Reflexion eingesetzt werden. Dieser Ansatz führt jedoch zu unnötiger Komplexität und erfordert Kenntnisse über konkrete Klassenimplementierungen. Es basiert auch auf einem strengen Protokoll, das oft nicht dokumentiert und nicht durchsetzbar ist.
Bedauerliches Design
Josh Bloch, Autor von Effective Java, bezeichnet das Design von Cloneable als „einen Fehler“. Es macht keine wirksame Werbung für die Unterstützung des Klonens und erzwingt ein umständliches Protokoll. Stattdessen schlägt er vor, Cloneable auf Klassenebene zu implementieren und so die Einhaltung des Protokolls sicherzustellen.
Das obige ist der detaillierte Inhalt vonWarum ist die „clone()'-Methode von Java geschützt und nicht Teil der „Cloneable'-Schnittstelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

