Интерпретация сообщения об ошибке исключений класса JVM - какой исходный тип, который нельзя поднять

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

  •  23-09-2019
  •  | 
  •  

Вопрос

У меня есть производственная система Java с IBM JVM, работающим на Linux.
Клиент сообщает о следующем исключении, напечатанном в журнале:
java.lang.ClassCastException: [B incompatible with java.lang.String
При попытке разыграть индивидуальные атрибуты, возвращенные из: javax.naming.directory.InitialDirContext(...)
Из этого исключения я не могу понять, какой тип нельзя преобразовать в строку. Что такое "B"?

Обычно я знаю, что сообщение об ошибке с актерским составом должно выглядеть примерно так:
java.lang.ClassCastException: java.lang.Integer incompatible with java.lang.String
Но, как вы можете видеть, это не так в первой распечатку.
Я думал, что может быть настоящий класс по имени Б, но я мог бы найти его под javax.naming ...
Здесь происходит запутывание имени?
Теперь я планирую отправить клиенту версию, которая распечатает класс экземпляра, прежде чем попытаться поднять на строку:
i.getClass().getCanonicalName()
Но эти пинг -понги занимают неделю, если у вас есть идея и вы можете помочь мне до этого, это было бы супер!

Это было полезно?

Решение

[B является множеством byte (т.е. byte[]) Обратите внимание, что [ является частью имени.

Увидеть API для Class.getName() Для правил того, как произведены эти имена.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top