2

我有一个在 Linux 上运行 IBM JVM 的 Java 生产系统。
客户报告打印到日志中的以下异常:
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
但正如您所看到的,在第一个打印输出中并非如此。
我认为可能有一个名为 B 的实际类,但我可以在 javax.naming 下找到一个......
这里有名称混淆吗?
我现在计划向客户发送一个版本,该版本将在尝试转换为字符串之前打印出实例的类:
i.getClass().getCanonicalName()
但是这些乒乓球需要一周的时间,如果你有一个想法并且可以在那之前帮助我,那就太好了!

4

1 回答 1

4

[Bbyte(即 a byte[])的数组。请注意,这[是名称的一部分。

有关如何生成这些名称的规则,请参阅API 。Class.getName()

于 2010-01-28T12:19:03.647 回答