如何在Java中获取给定类的数组类?

2023-12-11

我有一个Class保存某种类型的变量,我需要获取一个保存相应数组类的变量。我能想到的最好的办法是:

Class arrayOfFooClass = java.lang.reflect.Array.newInstance(fooClass, 0).getClass();

有没有办法在不创建新实例的情况下执行此操作?


从 Java 12 开始

Class提供了一个方法arrayType(),它返回数组类型类,其组件类型由给定的 Class 描述。请注意,个人JDK仍然可以创建该类的实例。

Class<?> stringArrayClass = FooBar.arrayType()

Java 12 之前

如果您不想创建实例,可以手动创建数组的规范名称并按名称获取类:

// Replace `String` by your object type.
Class<?> stringArrayClass = Class.forName(
    "[L" + String.class.getCanonicalName() + ";"
);

But 雅各布·詹科夫(Jakob Jenkov)在他的博客中争论道您的解决方案是更好的解决方案,因为它不需要摆弄字符串。

Class<?> stringArrayClass = Array.newInstance(String.class, 0).getClass();

³ 感谢您的提示约翰内斯·库恩.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Java中获取给定类的数组类? 的相关文章

  • 帮助我避免 JPA、Hibernate 和 MySQL 的连接超时

    我正在使用 JPA Hibernate 作为提供者 Glassfish 和 MySQL 开发中一切都运行良好 但是当我将应用程序部署到测试服务器并让它运行 大部分空闲 过夜时 我通常会在早上遇到这样的情况 2011 03 09T15 06
  • 如何将抽象工厂与单例模式结合起来? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在用 java 编码 并且对这些模式很陌生 谁能给我一个也使用单例的工厂抽象的例子 这是一个实现类的示例单例模式 这个实现也是线程安全
  • ResultSet:通过索引检索列值与通过标签检索

    使用 JDBC 时 我经常遇到这样的结构 ResultSet rs ps executeQuery while rs next int id rs getInt 1 Some other actions 我问自己 以及代码作者 为什么不使用
  • 如何为java注释处理器编写自动化单元测试?

    我正在尝试使用 java 注释处理器 我可以使用 JavaCompiler 编写集成测试 事实上我现在正在使用 hickory 我可以运行编译过程并分析输出 问题 即使我的注释处理器中没有任何代码 单个测试也会运行大约半秒 对于以 TDD
  • EL 通过 Scriptlet

    在 JSP 中使用 EL 相对于 scriptlet 的优势是什么 EL 被认为是无脚本语言 EL 使 JSP 免受容易出错原始 Java 代码并强制您根据 MVC 思想编写 JSP EL 或像 JSTL 这样的标签库 不可能实现的任何事情
  • MediaPlayer.create() 始终返回 null

    我以前用过媒体播放器 从来没有遇到过这个问题 每当我尝试使用 MediaPlayer create 时 该方法都会给我 null 并且我无法播放声音 我有什么遗漏的吗 public class Game extends Activity p
  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 我需要一个字数统计程序[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要弄清
  • 强制 Java 最低版本以“java -version:”运行在 Windows 上不起作用

    我想强制应用程序运行的 JVM 最低版本为 1 6 或更高版本 即 1 6 我的理解是 您可以使用 version 命令行参数来执行此操作 我尝试了一下 在Linux下似乎可以正常工作 但在Windows下却不行 LINUX 我在 Linu
  • net.sf.jasperreports.engine.JRRuntimeException:java.io.IOException:无法读取字体数据

    我正在尝试通过 JasperReport 创建 PDF 报告 但读取字体数据时出现问题 我有 jasperreports extension properties 和 ClassPath 中的相关 TTF 文件 这是错误 java io I
  • spring mvc 跟踪引用页面

    在基于注释的弹簧控制器中 如果用户正在url com first page并点击一个链接或提交一份表格指出url com second page 如何制作second page知道url of first page所以这样second pa
  • 将多个数组合并为一个数组

    如何将多个数组合并为一个二维数组 鉴于我有以下输入 var arr1 1 2 3 var arr2 a b c var arr3 aa bb cc 我需要这样的输出 1 a aa 2 b bb 1 c cc 我认为你想要的是将三个数组组合成
  • 在 Java 中创建带注释的对象时收到通知

    Intent 我有一个自定义 Java 注释 DynamicField public class RESTEndpointInvoker DynamicField key httpTimeout private long httpTimeo
  • C++中的类查找结构体数组

    我正在尝试创建一个结构数组 它将输入字符串链接到类 如下所示 struct string command CommandPath cPath cPathLookup set an alarm AlarmCommandPath send an
  • Perl 中令人困惑的文件句柄

    一直在使用以下脚本 但仍然无法理解两种不同 类型 的文件句柄形式背后的含义 任何见解将不胜感激 usr bin perl use warnings use strict open FH example txt or die while
  • Powershell - 将字符串拆分为由开始和结束字符串划分的数组

    我有一个多行字符串 来自 json 例如 somekey somevalue somekey somevalue somekey somevalue somekey somenumber somekey null 我想将字符串拆分为一个数组
  • javax.xml.bind.JAXBException: 类 *** 及其任何超类在此上下文中均未知

    我正在尝试通过 REST Web 服务传递对象 以下是我的课程 使用一些示例代码解释了我需要的功能 Rest Web 服务类方法 POST Path find Consumes MediaType APPLICATION FORM URLE
  • 如何在速度模板中检索哈希图值

    如何从速度模板中的以下哈希图中检索值 请帮忙 LinkedHashMap
  • 如何创建具有同等时间元素的 JavaFX 转换?

    我正在尝试 JavaFX 和动画 尤其是PathTransition 我正在创建一个简单的程序 使球 弹跳 而不使用QuadCurveTo班级 到目前为止 这是我的代码 Ellipse ball new Ellipse 375 250 10
  • Java 可变 BigInteger 类

    我正在使用 BigIntegers 进行计算 该计算使用一个调用 multiply 大约 1000 亿次的循环 并且从 BigInteger 创建新对象使其非常慢 我希望有人编写或找到了 MutableBigInteger 类 我在 jav

随机推荐

  • 如何在 cx_freeze msi 捆绑包中设置快捷方式工作目录?

    我正在开发一个处理 SQLite3 数据库的 Python 程序 我使用 cx Freeze 将其制作为 MSI 安装文件 由 cx Freeze 生成的 msi 安装文件生成的 Windows 快捷方式不提供快捷方式的工作目录属性 因此
  • 与 IOS 深层链接混淆

    我只是想问这里是否有人知道为 IOS 应用程序创建深层链接的逐步过程 我尝试阅读一些文章 但它没有给我绝对的答案 谢谢 深层链接基本上只是设置应用程序的 url 以便其他应用程序可以使用信息启动它 如果您进行设置以便您的应用程序对某些 UR
  • 从 pandas 数据框中选择特定行

    我只想知道 pandas 中是否有任何函数可以根据数据帧中的索引选择特定行 而无需编写自己的函数 例如 从大型数据框中选择索引为 15 50 的行 我已经写了这个函数 但我想知道是否有快捷方式 def split concat data f
  • 如何将 uint8 转换为字符串

    我想转换uint8串起来 但不知道如何串起来 package main import fmt import strconv func main str Hello fmt Println str 1 101 fmt Println strc
  • R data.table:对文件夹中的所有 .csv 文件使用 fread 跳过每个文件的最后一行

    我有数百个 csv 文件需要使用 fread 读取并保存为一个数据表 每个 csv 的基本结构都是相同的 有需要跳过的标头信息 使用skip 很容易 我很难跳过每个 csv 文件的最后一行 每个 csv 文件都有不同的行数 如果我在 Tes
  • 结合 Interlocked.Increment 和 Interlocked.Exchange

    我希望以原子方式递增静态变量 并同时以无锁方式将新值分配给实例字段 目标是让每个对象在创建时获得唯一的 递增的 id 这样两个对象就不可能获得相同的 id 下面的代码能实现这个目的吗 class MyClass private static
  • 在 Windows 服务中使用 SHFileOperation

    这是可能的 但是在 Windows 服务中使用 SHFileOperation 是否合适 shell32 dll 中的所有这些 SHxxx API 函数似乎都是根据用户级程序编写的 我可以确定 SHFileOperation 永远不会显示
  • DirectoryInfo 对象的 Length 属性

    K test 中存在空目录 New Folder gt a gci K test目录不应具有 Length 属性 让我们检查 bool a PSobject Properties Name match Length False 是的 没有
  • 访问 1x1 matlab 单元格的内容

    我不确定术语 但我已将数据从文本文件读取到 1x1 元胞数组中P 检查时P 它在 1 1 位置列出 从那里我可以双击它 它会打开我真正想要的 142x2 单元格 问题是 我不知道如何通过代码操作这些数据以将 1x1 元胞数组转换为 142x
  • Rails:多步表单上的动态选择不保持选择

    我正在按照瑞安 贝茨 Ryan Bates 的要求 为订单下达流程制定多步骤表单多步骤教程 217它使用会话 第一步 我有两个选择字段 一个用于国家 陆地 一个动态用于运输服务 选择土地后 运输服务将通过 javascript jQuery
  • 程序类型已存在:org.apache.http.auth.AuthSchemeFactory

    I used Picasso作为我的应用程序项目和聊天库的依赖项 这是我在编译代码时遇到的错误 程序类型已存在 org apache http auth AuthSchemeFactory 消息 种类 错误 文本 程序类型已存在 org a
  • 从 ggplot 检索颜色 - 值映射

    我假设 ggplot 尺度创建了某种函数来读取适当的aes值并返回colour size等等 这可以用作独立功能吗 例如 对于这个函数 我将传递必要的参数 range limits high low等 和我想要获取映射的值 函数的输出将是c
  • 如何使用 useState 挂钩在 forEach 循环中设置状态

    我想将数组 A 中的数据传输到对象 B 中 所以我做了类似 array forEach e gt setB B e 的操作 但似乎在遍历后面的元素时 以前的行动已经被 遗忘 了 我该如何实现我的目标呢 原型应该是这样的 import Rea
  • Java无法解析的日期SimpleDateFormat [重复]

    这个问题在这里已经有答案了 我有一个看起来像这样的约会 Sun Dec 29 00 24 09 CET 2019 我有一个小实用方法 可以将字符串日期从一种格式解析为另一种格式 public String formatDate String
  • Ipython bash/shell 单元魔法:我可以在单元之间拥有持久变量吗?

    这是我在 SO 上的第一篇文章 所以请告诉我我是否做错了什么 我对在 ipython 中使用不同的编程语言感兴趣 类似于 emacs org 模式下的 babel literal 编程 我喜欢 emacs org 模式的一点是 可以有多个
  • 我可以将图像作为文件而不是 data:url 存储在 Firebase 上吗?

    我想将图像存储在 firebase 上并想在某个地方使用它 我经历了这个帖子并尝试过这个演示 它将图像存储为 data url 格式 但我想将图像上传并存储为物理文件 以便我可以进一步使用它 例如这个网址http example com s
  • MvcMailer:无法在使用 Url.Action 的 Razor 视图上完成 NUnit 测试

    这是我的问题 我正在使用Mvc邮件程序使用 Razor 语法创建格式良好的电子邮件 它是一个很棒的工具 我遇到的问题是这样的 这是我发送的一封电子邮件的视图中的一些语法 p Click here to return to a href Ur
  • 如何检查 iOS 上的 React Native 应用程序的网络流量?

    I m using the latest React Native 0 18 at the time of this writing and would like to inspect the network requests my iOS
  • 在一个 Android 应用上接收来自两个 Firebase 项目的推送通知

    我有一个 Android 应用程序 我希望它能够接收来自两个不同 Firebase 项目的推送通知 我阅读了博客 在 Android 应用程序中使用多个 Firebase 项目 https firebase googleblog com 2
  • 如何在Java中获取给定类的数组类?

    我有一个Class保存某种类型的变量 我需要获取一个保存相应数组类的变量 我能想到的最好的办法是 Class arrayOfFooClass java lang reflect Array newInstance fooClass 0 ge