在Java中,“ a.ByteArray”的类型是否等于“ [B”?

时间:2019-07-24 23:04:31

标签: java

我正在比较两段代码,试图找出为什么一个有效而另一个无效。

在两个程序中,都有一个变量声明为:

byte[] operatorAndTokenHolder = ...

我第一次跑步

System.err.println(
  operatorAndTokenHolder.getClass().getName()
);

这给了

"a.ByteArray"

当我在其他代码上运行该行时,它将返回:

"[B"

这些类型等效吗?以及我如何进一步检查这种假定的byte[]的类型?

1 个答案:

答案 0 :(得分:4)

byte[]类具有类名"[B"。请参见javadoc中的Class::getName

  

我该如何进一步检查这种假定的byte[]的类型?

如果byte[]正在向您显示,肯定是getName ...

您还能如何证明这一点?怎么样:

 oneThing.getClass() == otherThing.getClass()

或者带有instanceof的东西。

我认为您错过了其他内容 1 。看看如何/为什么获得"a.ByteArray"作为应该声明为byte[]的事物的假定名称。如果它是数组类,则类名称的第一个字符应为'['

1-某些可能性:对一个类进行字节码操作,查看错误的源代码文件,构建或部署过程出现问题。可能也是其他人。