ObjectInputStream.ResolveClass(ObjectStreamClass) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Laden Sie die lokale Klassenentsprechung der angegebenen Datenstromklassenbeschreibung.
[Android.Runtime.Register("resolveClass", "(Ljava/io/ObjectStreamClass;)Ljava/lang/Class;", "GetResolveClass_Ljava_io_ObjectStreamClass_Handler")]
protected virtual Java.Lang.Class? ResolveClass(Java.IO.ObjectStreamClass? desc);
[<Android.Runtime.Register("resolveClass", "(Ljava/io/ObjectStreamClass;)Ljava/lang/Class;", "GetResolveClass_Ljava_io_ObjectStreamClass_Handler")>]
abstract member ResolveClass : Java.IO.ObjectStreamClass -> Java.Lang.Class
override this.ResolveClass : Java.IO.ObjectStreamClass -> Java.Lang.Class
Parameter
- desc
- ObjectStreamClass
eine Instanz der Klasse ObjectStreamClass
Gibt zurück
ein Class Objekt, das dem entsprechenden Objekt entspricht desc
- Attribute
Ausnahmen
wenn die Klasse für ein Objekt nicht gefunden werden kann.
wenn beim Erstellen der Klasse ein E/A-Fehler auftritt.
Hinweise
Laden Sie die lokale Klassenentsprechung der angegebenen Datenstromklassenbeschreibung. Unterklassen können diese Methode implementieren, damit Klassen aus einer alternativen Quelle abgerufen werden können.
Die entsprechende Methode in ObjectOutputStream ist annotateClass. Diese Methode wird nur einmal für jede eindeutige Klasse im Datenstrom aufgerufen. Diese Methode kann von Unterklassen implementiert werden, um einen alternativen Lademechanismus zu verwenden, aber ein Class Objekt zurückgeben muss. Wenn die Klasse keine Arrayklasse ist, wird die serialVersionUID nach der Rückgabe mit der serialVersionUID der serialisierten Klasse verglichen, und wenn eine Übereinstimmung besteht, schlägt die Deserialisierung fehl, und es wird ein InvalidClassException Fehler ausgelöst.
Die Standardimplementierung dieser Methode in ObjectInputStream der Rückgabe des Ergebnisses des Aufrufs
Class.forName(desc.getName(), false, loader)
wobei loader wie folgt bestimmt wird: Wenn eine Methode im Stapel des aktuellen Threads vorhanden ist, deren deklarierende Klasse von einem benutzerdefinierten Klassenladeprogramm definiert wurde (und nicht generiert wurde, um reflektierende Aufrufe zu implementieren), ist das loader Klassenladeprogramm, das der nächstgelegenen methode für den derzeit ausgeführten Frame entspricht; andernfalls ist dies loadernullder . Wenn dieser Aufruf zu einer ClassNotFoundException und der Name der übergebenen ObjectStreamClass Instanz das Schlüsselwort Java Sprache für einen Grundtyp oder eine Leere ist, wird das Objekt zurückgegeben, das Class den grundtyp oder void darstellt (z. B. ein ObjectStreamClass Mit dem Namen "int" wird aufgelöst in Integer.TYPE). Andernfalls wird der ClassNotFoundException Aufrufer dieser Methode ausgelöst.
Java Dokumentation für java.io.ObjectInputStream.resolveClass(java.io.ObjectStreamClass).
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.