问题标签 [jcodemodel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
67 浏览

jcodemodel - 为变量添加类型

jcodemodel 可以通过执行以下操作来添加私有属性:

但是,如果不使用 JDK 中的类,而是使用在调用字段 API 时不在类路径上的类,会发生什么?

您所知道的只是类名作为字符串,您的类路径中没有该类 - 其他人正在生成它。

0 投票
1 回答
315 浏览

jcodemodel - 在 JCodeModel 中实例化一个字段级 HashMap

我想在 JCodeModel 中一次性声明和实例化一个 HashMap。

我愿意:

声明它但不实例化它。我如何实例化它?

谢谢

0 投票
2 回答
246 浏览

java - 添加版权信息生成的java代码 - Jcodemodel

我正在使用 JCodeModel 生成 java 源代码。我会在生成的代码中添加版权信息。目前这可能吗?

我尝试javadoc()在 JDefinedClass 中使用,它仅在类定义上方添加信息。

0 投票
1 回答
511 浏览

java - 使用 JCodeModel 生成 toString() 方法

我正在尝试使用com.sun.codemodel.JCodeModel.

我已经设法生成hashcode()equals()方法,但我正在努力toString()

我需要以下toString()实现

如何创建一个JCodeModel JExpression包含JExpr.lit(field1.name())与 连接的JExpr.ref(fieldVar.name())

我设法做的就是生成一个类似于以下的字符串文字:-

到目前为止,这是我的骨架方法:-

0 投票
1 回答
112 浏览

java - 自动初始化由 JCodeModel 创建的字段

我通过 Json 创建了一个新的 Java 类,即:

将产生:

我使用 JCodeModel 生成 StudentForm,Field 生成方法如下所示:

但我想在创建源时初始化字段。

有没有办法通过初始化来扩展 JFieldVar?

0 投票
1 回答
388 浏览

java - JAXB、XJC:为类大纲生成字段

我的问题涉及编写 JAXB 插件,尤其是ClassOutline内部插件。

里面有com.sun.tools.xjc.outline.ClassOutline字段:

  • 目标
  • 参考
  • 实现类
  • implRef

代码:

据我所知(所以回答):

  • target- 在 中保存信息Model,表示已解析和分析的架构文件 (.xsd)
  • ref通常等于implClass并且两者都成立Code Model
  • implClass是放置新生成的字段、方法等的正确位置。
  • implRef- 它是什么?

我想将新字段添加到描述的类中ClassOutline,所以代码如下所示:

它工作得很好,直到在执行上述代码并使用com.sun.tools.xjc.outline.ClassOutline.getDeclaredFields()方法之后有另一个插件工作。

想象一下 -Plugin1创建新字段,然后执行CopyablePlugin并希望添加clone()复制每个字段的方法。但CopyablePlugin没有看到新生成的字段Plugin1- 因为要从使用方法中检索所有字段,如下所示ClassOutlineCopyablePlugincom.sun.tools.xjc.outline.ClassOutline.getDeclaredFields()

请注意,它getDeclaredFields()从字段中检索属性ClassOutline.target(这是Model已解析的 XSD 模式)并完全忽略生成到ClassOutline.implClass.

它是错误还是功能?

现在我找到了解决方法。相同的字段也作为属性添加到target


问题

  1. 能解释一下吗,是什么角色ref/implClass/implRef
  2. 我应该在哪里生成全新的字段/方法?进ref/implClass
  3. 是否有必要保持 和 之间的ref/implClass一致性target?添加到的新字段implClass也应该添加到target,对吗?
  4. 是否com.sun.tools.xjc.outline.ClassOutline.getDeclaredFields()正确?或者如何正确地从 ClassOutline 中检索所有字段?也许这应该是targetimplClass内容的结合?
0 投票
1 回答
172 浏览

java - 如何在使用 CodeModel 的方法内“生成源代码”创建和初始化 hashMap

要生成的源代码

能够创建为全局变量,但我需要在方法中创建它

0 投票
1 回答
55 浏览

jcodemodel - JCodeModel 中的嵌套注解

我想从 XML 文件创建一个 CompoundIndexes 注释,如下所示。

输入图片描述 e

但是,我不知道如何将带参数的 CompoundIndex Annotation 放在 CompoundIndexes Annotation 中。这是我尝试过的。

但是,我最终得到以下结果。

在此处输入图像描述

我怎样才能只获得嵌套的compoundIndexes 部分并摆脱下面的两个组件索引注释?

换句话说,如何创建一个注解并将其作为参数传递给另一个注解?

0 投票
1 回答
132 浏览

java - 使用 JCodeModel,不应使用 SonarLint 报告来自“sun.*”包的类

我试图在一些从 JSON 模式生成 Java Pojo 类的代码中使用 com.sun.codemodel.JCodeModel 但 SonarLint 报告不应使用来自“sun.*”包的类。在符合要求的不同包中是否有 JCodeModel 的替代品?

0 投票
1 回答
133 浏览

java - 我们如何使用 JCodeModel 生成此方法

我正在使用 JCodeModel,但找不到如何生成从其超类返回调用的方法。

我所拥有的相关部分..

JDefinedClass jc = jp._class("NewPremiumDTO"); JMethod m = jc.method(JMod.PUBLIC, LP.class, "map"); m.body()._return(m.body().invoke("super"). arg(JExpr.ref("map")));

这将生成 2 行而不是像这样的 1

super(map); return super(map);

在生成的方法中,但我想生成这个