Interpretieren einer JVM-Klassenumwandlungsausnahme-Fehlermeldung – welcher ursprüngliche Typ kann nicht umgewandelt werden?

StackOverflow https://stackoverflow.com/questions/2154366

  •  23-09-2019
  •  | 
  •  

Frage

Ich habe ein Java-Produktionssystem mit IBM JVM, das unter Linux läuft.
Ein Kunde meldet die folgende Ausnahme im Protokoll:
java.lang.ClassCastException: [B incompatible with java.lang.String
Beim Versuch, die einzelnen zurückgegebenen Attribute umzuwandeln: javax.naming.directory.InitialDirContext(...)
Anhand dieser Ausnahme kann ich nicht herausfinden, welcher Typ nicht in String konvertiert werden konnte.Was ist „B“?

Normalerweise weiß ich, dass eine Fehlermeldung zur Klassenumwandlung etwa so aussehen sollte:
java.lang.ClassCastException: java.lang.Integer incompatible with java.lang.String
Wie Sie sehen, ist dies jedoch im ersten Ausdruck nicht der Fall.
Ich dachte, dass es eine tatsächliche Klasse namens B geben könnte, aber ich konnte eine unter javax.naming finden ...
Gibt es hier eine Namensverschleierung?
Ich habe jetzt vor, dem Kunden eine Version zu senden, die die Klasse der Instanz ausgibt, bevor versucht wird, sie in einen String umzuwandeln:
i.getClass().getCanonicalName()
Aber diese Tischtennisplatten dauern eine Woche, wenn du eine Idee hast und mir vorher helfen könntest, wäre das super!

War es hilfreich?

Lösung

[B ist ein Array von byte (d. h.A byte[]).Notiere dass der [ ist ein Teil des Namens.

Siehe die API für Class.getName() für die Regeln, wie diese Namen erzeugt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top