2016-07-06 11 views
0

Ist es möglich, eine Klasse zu erstellen, die eingebaute Klassen erweitern? Ich habe viele Fragen über das Erstellen von Unterklassen, aber keines über das Überklassifizieren von ihnen. Ich weiß, ich könnte einfach Object verwenden, aber ich hoffe, es gibt eine sauberere Lösung.Wie kann ich eine eingebaute Klasse überklassifizieren?

die Frage klarer zu machen, hier ist der Grund, frage ich. Ich bin auf einem Code-Generation-System arbeiten, das seine eigenen Implementierungen von vielen eingebauten Klassen hat, einschließlich (aber nicht beschränkt auf) com.thiscompany.IntegerDatum und com.thiscompany.StringDatum. Dies wurde ursprünglich getan, damit alle diese Daten eine einzige abstrakte Klasse namens Datum erweitern konnten. Es ist jedoch nicht immer notwendig, Datum zu erweitern. In diesen Fällen wäre die Verwendung von java.lang.Integer und java.lang.String viel schneller. Ich möchte eine Klasse machen, die Datum Super, java.lang.Number und java.lang.String so dass Methoden, die auch auf Daten arbeiten auf diesen anderen Typen arbeiten können. Ist das möglich ohne Objekt zu benutzen?

+0

'Java.lang.String' ist' final' Sie können nicht von ihm ausgehen – Jens

+0

Ich versuche nicht, '' Java.lang.String'' zu erweitern - ich versuche es etwas anderes zu erweitern. – kigaltan

+0

Sie können das nicht ohne eigene JVM zu schaffen :) – borowis

Antwort

0

Bestimmte Dinge sind nicht nur „niedergeschrieben in Klassendatei Bytecode“. Sie sind in der JVM selbst implementiert. Selbst wenn Sie einen Weg finden, auf dieser Ebene zu manipulieren; Ich denke nicht, dass das Ergebnis eine zuverlässige, robuste und vertrauenswürdige Komponente sein wird. Mehr zum genauen Gegenteil davon.

Verwandte Themen