java - 我们如何使用 Class.forName 来获取原始字节类?

标签 java reflection

我们可以使用 Class.forName("[B") 来获取字节数组,但是我们为原始字节类放入了什么:

例如

  Class.forName("??") => java.lang.Byte.TYPE

我尝试了 "java.lang.Byte.TYPE""byte""B" 但它们不起作用

最佳答案

通常,Class 实例由 ClassLoader 创建。因此,对于来自不同 ClassLoader 实例的同一类,您可以拥有 2 个 Class 实例。

这对于基本类型来说是不正确的。每个 JVM 的每个基本类型只有一个 Class 实例。它是从 Class 类中的 native 方法创建和返回的。

static native Class getPrimitiveClass(String name);

这直接分配给 Byte.TYPE

public static final Class<Byte> TYPE = (Class<Byte>) Class.getPrimitiveClass("byte");

或当你这样做时返回

byte.class

你不能使用 Class.forName(..) 来获取它。

关于java - 我们如何使用 Class.forName 来获取原始字节类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21422898/

相关文章:

c# - 在运行时创建 C# Web API 2 Controller 时出现异常

c# - 我如何反射(reflect)动态对象的成员?

.net - 如何通过类型名称获取泛型接口(interface)的类型?

applet - 用于确定 'latest Java version' 的 Oracle 或第 3 方服务

java - 当我们将鼠标悬停在 eclipse 中的方法上时,那些不同的颜色符号是什么?

java - VisualVM 线程转储与堆转储不匹配?

Java 泛型 : How to test if a field type is a specification of a generic class

java - 文件未下载到 chrome-headless 和 selenium java 中的指定下载目录中

java - 使用 Jena 将子子项添加到 RDF

java - 我可以使这个 java pluck() 方法更安全吗?