问题标签 [sun-codemodel]

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 投票
2 回答
432 浏览

java - 如何向使用 JCodeModel 扩展的类添加泛型类型参数?

我正在玩JCodeModel并尝试生成一个类;多亏了这个链接,我才能想出这个:

所以,这行得通。标准输出上生成的代码是:

到目前为止,一切都很好。

现在,问题是我想extends BaseParser<Object>而不是BaseParser......尽管在谷歌上搜索了好几个小时,但我无法弄清楚如何做到这一点......

我该怎么做呢?

0 投票
1 回答
88 浏览

sun-codemodel - 无法在代码模型中创建抽象类?

我的代码:

无论我写什么modsClassType参数,结果总是一个public class.

如何创建抽象类?

0 投票
1 回答
153 浏览

java - JExpression在if语句中添加字符串值作为属性

我正在开发一个插件,使用CodeModel在我的项目中创建 toString 语句。

生成的代码应如下所示:

(在上面的代码中是一个简单的StringBuilder)

我想使用 CodeModel 在 if 语句中自动生成新的行和制表符,并且到目前为止已经得到了这个输出:

问题是围绕变量的引号,当我为变量值分配 JExpression 文字值时,这些引号就在那里。当前的实现如下所示:

有谁知道如何使用 JExpression 或 CodeModel 中的其他任何东西来完成这项工作?到目前为止,我唯一的选择是使用 directStatement 来完成,如下所示:

0 投票
2 回答
233 浏览

java - 将 JExpression (JOp.cond()) 添加到 JBlock (JMethod 主体)

我想将 if - else 语句重构为三元运算符。

if ((variable) == null) { ... do something } else { ... do something else }

使用 Codemodel 创建三元运算符非常简单,与 JOp.cond() 一样,我们可以传入条件、ifTrue 和 ifFalse 参数以返回三元语句。

我的问题是将 JExpression 添加到方法主体(JBlock)中:

有人知道如何将 JExpression 添加到 JBlock 吗?

0 投票
1 回答
236 浏览

java - Sun Codemodel 泛型方法调用

我正在使用 Codemodel 库来生成 java 类。有没有办法生成如下所示的通用方法调用:

当然有一种方法可以使用以下表达式将返回结果转换为正确的类型:

这导致

但首选的转换方式是第一种,因为此代码正在生成模板以供开发人员进一步手动编辑。

0 投票
1 回答
241 浏览

java - 使用 jsonschema2pojo 或 com.sun.codemodel 时在类的开头添加注释

我正在尝试使用 jsonSchema 创建 POJO。
我发现了一个名为jsonschema2pojo的项目,除了几个问题外,它似乎很合适。
我愿意分叉该项目并添加一些自定义项(例如自定义注释和可能的方法)。
该项目使用 com.sun.codemodel 来构建类。
由于生成的代码将投入生产,我需要在文件开头添加版权声明。
我在 jsonschema2pojo 或 codemodel 中都没有找到任何解决方案。各位有什么解决办法吗?

0 投票
1 回答
50 浏览

java - 如何在 Annotation 中生成/声明注释字段?

我想得到这样的东西:

问题是我不能使用 JFieldVar,因为它看起来像这样:

0 投票
1 回答
126 浏览

java - JCodemodel 中的异常消息

我正在使用 JCodemodel 动态生成 java 类。下面是创建 switch 语句的代码,其默认情况是抛出异常。

生成的类如下所示

现在我想向抛出的异常添加一条消息,例如

我如何在 JCodemodel 中实现这一点。任何帮助,将不胜感激。

0 投票
0 回答
202 浏览

java - Codemodel:如何实现方法引用

我有一个具有如下 getter 方法的接口

我想创建另一个类,我想在其中引用 IAddress 的 getter 方法,例如IAddress::getId.

如何在 JCodeModel 中实现这一点?

0 投票
1 回答
208 浏览

generics - 如何生成可选> 在 JCodeModel 中?

我想为以下方法创建 JCodeModel:

我目前正在使用下面的代码来创建类的返回类型。

但是上面的代码给出了一个高优先级的 FindBug 错误PRMC_POSSIBLY_REDUNDANT_METHOD_CALLS

谁能帮我优化上面的代码行?