我们可以使用 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/