You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何表示数组的类字面量?含基本类型数组及更优方案

获取Java数组类的直接方式

其实Java本身就支持直接用类字面量语法获取数组类的Class对象,完全不需要通过创建数组实例再调用getClass(),这是最简洁高效的方式。

1. 基本类型数组

直接使用 基本类型[].class 的形式:

  • byte[].class → byte数组的Class对象
  • int[].class → int数组的Class对象
  • boolean[].class → boolean数组的Class对象
  • char[].class → char数组的Class对象
  • 同理,short[].class、long[].class、float[].class、double[].class 都是合法的

甚至多维数组也可以直接写:

  • int[][].class → 二维int数组的Class对象

2. 引用类型数组

同样用 引用类型[].class 的形式:

  • String[].class → String数组的Class对象
  • List[].class → List数组的Class对象
  • 自定义类数组比如 User[].class 也完全可行

3. 备选方案:Class.forName()

如果你只有字符串形式的类标识,也可以用Class.forName()来获取,不过需要记住数组类的命名规则:

  • 基本类型数组:用[加对应类型的缩写,比如byte数组是"[B",int数组是"[I"
  • 引用类型数组:用[L加全类名加;,比如String数组是"[Ljava.lang.String;"

示例代码:

// 获取byte数组类
Class<?> byteArrayClass = Class.forName("[B");
// 获取String数组类
Class<?> stringArrayClass = Class.forName("[Ljava.lang.String;");

不过这种方式需要处理ClassNotFoundException,而且可读性不如直接用.class语法,所以优先推荐第一种方式。


内容的提问来源于stack exchange,提问作者Joshua Fox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:20:22