我正在比较两段代码,并试图弄清楚为什么一段有效而另一段无效。
在这两个程序中,都有一个变量声明为:
byte[] operatorAndTokenHolder = ...
第一次跑
System.err.println(
operatorAndTokenHolder.getClass().getName()
);
这给出了
"a.ByteArray"
当我在其他代码上运行该行时,它返回:
"[B"
这些类型是否等价?我怎样才能进一步检查这个假定的 byte[]
的类型?
最佳答案
byte[]
类有一个类名 "[B"
。查看javadoc对于 Class::getName
。
And how could I further inspect the type of this supposed
byte[]
?
嗯,它肯定是 byte[]
... 如果这就是 getName
向您展示的内容。
您还能如何证明这一点?怎么样:
oneThing.getClass() == otherThing.getClass()
或者带有instanceof
的东西。
我想你还漏掉了一些东西1。查看如何/为什么将 "a.ByteArray"
作为假定声明为 byte[]
的名称。如果它是一个数组类,类名的第一个字符应该是 '['
。
1- 一些可能性:对一个类进行字节码操作、查看错误的源代码文件、构建或部署过程出现问题。可能还有其他人。
关于java - 在 Java 中,类型 "a.ByteArray"等于 "[B"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57192310/