如何使用 CodeModel 初始化二维数组

2024-02-05

我需要初始化一个二维数组,如下所示

     Object[][] someName = {
                             {"param1","param2","param3"}, 
                             {"param4","param5","param6"}
                            };

我尝试过像

    JExpression exp = JExpr.newArray(codeModel.ref(String.class)).add(JExpr.lit("param1").add(JExpr.lit("param2"));

    methodBlock.decl(JMod.NONE, codeModel.ref(Object.class).array().array(), dataProviderName, exp);

但它初始化一维数组,

任何帮助表示赞赏


它可能不完全相同,但以下代码初始化示例二维数组:

JDefinedClass testClass = codeModel._class("TestClass");

JMethod runme = testClass.method(JMod.PUBLIC, codeModel.VOID, "runme");
JBlock methodBlock = runme.body();

JExpression exp = JExpr.newArray(codeModel.ref(String.class).array())
    .add(JExpr.newArray(codeModel.ref(String.class))
                        .add(JExpr.lit("param1")).add(JExpr.lit("param2")).add(JExpr.lit("param3")))
    .add(JExpr.newArray(codeModel.ref(String.class))
                        .add(JExpr.lit("param4")).add(JExpr.lit("param5")).add(JExpr.lit("param6")));

methodBlock.decl(JMod.NONE, codeModel.ref(Object.class).array().array(), "someName", exp);

这会生成以下内容,显式声明内部数组:

public class TestClass {


    public void runme() {
        Object[][] someName = new String[][] {new String[] {"param1", "param2", "param3"}, new String[] {"param4", "param5", "param6"}};
    }

}

您尝试的代码几乎是正确的,您只需要在newArray() call: JExpr.newArray(codeModel.ref(String.class).array())

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

如何使用 CodeModel 初始化二维数组 的相关文章

随机推荐

  • 错误:最低支持的 Gradle 版本为 2.10,尚不支持 Gradle 3.x

    我想要的完整标题 错误 最低支持的 Gradle 版本是 2 10 尚不支持 Gradle 3 x 当前版本是2 4 如果使用 gradle 包装器 请尝试将 gradle wrapper properties 中的 distributio
  • 错误 2002 (HY000): 无法通过套接字 '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (111)

    在 Ubuntu 机器上发出 mysql 命令时出现此错误 错误 2002 HY000 无法通过套接字 var run mysqld mysqld sock 连接到本地 MySQL 服务器 111 该服务未启动并出现以下错误 root be
  • R 中牛区网格的一个共享图例

    我刚刚用包构建了一个网格cowplot 标记 A D 的图 这些图是用包制作的ggplot2 pfour lt ggplot four aes x Concentration y Percentage fill Phenotype geom
  • C# - 检查是否按下了特定键

    我试图检查是否按下了某个键 但收到以下错误消息 错误 1 当前上下文中不存在名称 键盘 错误2 当前上下文中不存在名称 Key 你能告诉我如何修复它吗 public void Main while true if Keyboard IsKe
  • 启动 JettyRun 时排除 Gradle 类路径运行时

    我有基本的 Gradle Web 应用程序项目 它工作正常 但我注意到 Gradle 的运行时类路径包含在 jetty 中 这有可能与 Web 应用程序发生冲突 请注意 下面的 gradle 使用的是稍旧版本的 logback 并且 SL4
  • 连续播放多个声音时有时会保持无声,为什么?

    我遇到了一个奇怪的问题 希望有人能回答它 我有 4x4 按钮 如果我点击它们 每个按钮都会播放 1 秒的短声 我的代码 Button 1 Button findViewById R id button1 Button 1 setOnClic
  • Python 多处理锁

    此多处理代码按预期工作 它创建 4 个 Python 进程 并使用它们打印数字 0 到 39 每次打印后都有延迟 import multiprocessing import time def job num print num time s
  • 在android中使用标签设置和获取片段

    我用 viewpager 创建了一个选项卡布局 一切都很好 除了我需要在特定时刻运行一个方法 所以我需要获取片段实例并运行他们的方法 我是这样创建的 Override protected void onCreate Bundle saved
  • 使用 VsVim 搜索时突出显示会使代码不可读

    我已经使用 VsVim 一段时间了 我对它非常满意 然而 让我烦恼的一件事是当我在 VsVim 中进行任何类型的搜索时 文本的突出显示 例如使用 或标准搜索 我花了几个小时尝试更改 Visual Studios 选项菜单中的字体和颜色 但我
  • QT5:无法在 Windows 中加载 psql 驱动程序

    我想在 Windows 7 中加载 qt5 psql 驱动程序 我已经这样加载库 qDebug lt lt QCoreApplication libraryPaths QString driverName QPSQL QSqlDatabas
  • 移动网站的“链接到 App Store”小部件

    在过去的几个月里 我发现了几个使用某种 小部件 的网站 如果我使用 iPhone 打开具有此小部件的网站 它将显示指向 网站相关 iPhone 应用程序的链接 它看起来像一个简单的 div 包含应用程序名称 评级和链接 该小部件甚至 知道
  • 从 ViewPager 获取不同片段的值

    我正在开发一个应用程序 其中片段是动态生成的 private void setupViewPager ViewPager viewPager adapter new ViewPagerAdapter getSupportFragmentMa
  • Google Sheets:通过 Apps 脚本批量 getRangeByName

    是否可以获得多个按名称范围一通电话 我有一个复杂的函数 需要按名称获取多个范围 而 Spreadsheet getRangeByName name 会显着减慢我的脚本速度 有时这些调用大约需要 2 秒 有时单个调用可能需要大约 45 秒 限
  • svn https: “ra_serf: SSL 通信期间发生错误”

    我知道这与其他帖子的标题相同 但我搜索了又搜索 但找不到解决方案 我在所有机器上从 TortoiseSVN 1 6 升级到 1 8 4 我的主开发机器开始出现此错误 ra serf An error occurred during SSL
  • 具有任意属性的 SPARQL 属性路径查询

    SPARQL 属性路径 http www w3 org TR sparql11 query propertypaths任意长度的查询需要使用特定的属性 我想查询并查找从一个资源开始并以另一个资源结束的任何路径 例如 SELECT p WHE
  • 如何 Iterator::chain 迭代器向量?

    对于给定的一组迭代器 a b c 可以使用以下命令成功链接它们a chain b chain c 由于我尝试编写的 CLI 实用程序提供了路径向量 字符串 dirs a b c d e f 我想使用walkd dir在它们每个上 然后将它们
  • 更改node_modules位置

    有没有办法更改node modules文件夹位置 例如 dir1 dir2 node modules to dir1 dir2 node modules 以下是查看的代码node modules默认文件夹 Module prototype
  • 动作和动作监听器之间的区别

    有什么区别action and actionListener 我应该什么时候使用action versus actionListener 动作监听器 Use actionListener如果你想要一个钩子before真正的业务行动得到执行
  • 使用 Spring Security 进行单元测试

    我的公司一直在评估 Spring MVC 以确定我们是否应该在下一个项目中使用它 到目前为止 我喜欢我所看到的 现在我正在研究 Spring Security 模块 以确定它是否是我们可以 应该使用的东西 我们的安全要求非常基本 用户只需提
  • 如何使用 CodeModel 初始化二维数组

    我需要初始化一个二维数组 如下所示 Object someName param1 param2 param3 param4 param5 param6 我尝试过像 JExpression exp JExpr newArray codeMod