java - 在 Java 中,类型 "a.ByteArray"等于 "[B"吗?

标签 java

我正在比较两段代码,并试图弄清楚为什么一段有效而另一段无效。

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

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/

相关文章:

java - 如何在不使用同步方法或 block 的情况下实现线程安全?

java - 在 Eclipse 中添加 SocialAuth 时出现 NoClassDefFoundError

java - 在 Java 中使用 Jackson 创建 JSON 对象

java - 跟踪未检查(或检查?)异常丢失的位置

java - 如何运行位于 android 模块内的单元测试?

java - 如何为 Spring Boot 2 添加自定义 MeterRegisty

java - RestTemplate.exchange() 不编码 '+' ?

java - 将属性文件中的值加载到 jsp 中,而不在 JSP 页面内使用 scriplet

java - 创建空引用

java - 方法参数中的空值