java - 解释 JVM 类转换异常错误消息 - 无法转换的原始类型是什么

标签 java jvm classcastexception

我有一个 Java 生产系统,其中 IBM JVM 在 Linux 上运行。
客户报告在日志中打印以下异常:
java.lang.ClassCastException:[B 与 java.lang.String 不兼容
当尝试转换从以下位置返回的各个属性时:javax.naming.directory.InitialDirContext(...)
从这个异常中我无法弄清楚无法转换为 String 的类型是什么。 “B”是什么?

通常,我知道类转换错误消息应该如下所示:
java.lang.ClassCastException:java.lang.Integer与java.lang.String不兼容
但正如您所看到的,第一个打印输出中的情况并非如此。
我认为可能有一个名为 B 的实际类,但我可以在 javax.naming 下找到一个...
这里是否存在名称混淆?
我现在计划向客户发送一个版本,该版本将在尝试转换为字符串之前打印出实例的类:
i.getClass().getCanonicalName()
但是这些乒乓球需要一周的时间,如果你有一个想法并能在此之前帮助我,那就太棒了!

最佳答案

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

请参阅API for Class.getName()了解如何生成这些名称的规则。

关于java - 解释 JVM 类转换异常错误消息 - 无法转换的原始类型是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2154366/

相关文章:

java - dwr - 在一个请求中上传文件和下载文件

Java 正则表达式 : find the last occurrence of a string using Matcher. 匹配()

java - 64 位 OpenJDK 7/8 中并发长写入的值完整性保证

java - Hibernate 类强制转换异常

将父类(super class) obj 转换为子类 obj 时发生 Java 错误

java - 标记非数据库字段 @Transient 与范围 JPA 实体?

java - java中来自服务器的错误

garbage-collection - 是否-XX :+CMSIncrementalMode run on application threads or in GC-dedicated threads?

java - Java 编译器和 JVM 是用哪种语言编写的?

java - 方法提供中的 ClassCastException