问题标签 [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.
java - 使用代码模型扩展内部类
如何从内部静态类扩展生成的类?
例如,我有
我希望我生成的类从 Bar 扩展
我得到的是
但我想要的是
解决方案:
你应该像这样传递类名:
CodeModel 会生成
java - 如何使用 codeModel 生成具有十六进制常量值的 int 字段
我正在尝试使用生成 java 枚举compile group: 'com.sun.codemodel', name: 'codemodel', version: '2.6'
每个枚举常量都有两个 int 参数,它们必须设置为 hex/unicode 值。
我希望生成的代码将类似于此
目前我能生成的就是这个
我用来生成每个常量的 codeModel 代码是这样的:-
我明白这是我使用的com.sun.codemodel.JExpr
方法
这会导致问题,但是我看不到如何从十六进制值生成需要的整数常量。
是否有可能达到我想要的结果?
更新
我有以下驱动我的代码生成的输入数据
code-generation - 使用 com.sun.codemodel;如何将类写为字符串而不是文件
我正在调查com.sun.codemodel
生成 Java 类。
JCodeModel 类有多种构建方法,支持将所需的 Java 类生成到文件中,但是我想将这些生成的类作为字符串获取。
查看 JCodeModel 的 Javadoc 和源代码,我无论如何都无法实现这一目标。
如何获取生成的类作为字符串而不是/以及将它们写入文件?
是否可以扩展com.sun.codemodel.CodeWriter
以产生字符串?
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
- 因为要从使用方法中检索所有字段,如下所示ClassOutline
:CopyablePlugin
com.sun.tools.xjc.outline.ClassOutline.getDeclaredFields()
请注意,它getDeclaredFields()
从字段中检索属性ClassOutline.target
(这是Model
已解析的 XSD 模式)并完全忽略生成到ClassOutline.implClass
.
它是错误还是功能?
现在我找到了解决方法。相同的字段也作为属性添加到target
:
问题
- 能解释一下吗,是什么角色
ref/implClass/implRef
? - 我应该在哪里生成全新的字段/方法?进
ref/implClass
? - 是否有必要保持 和 之间的
ref/implClass
一致性target
?添加到的新字段implClass
也应该添加到target
,对吗? - 是否
com.sun.tools.xjc.outline.ClassOutline.getDeclaredFields()
正确?或者如何正确地从 ClassOutline 中检索所有字段?也许这应该是target
和implClass
内容的结合?
java - 如何使用代码模型调用另一个类的方法
我有一个 java 类说 Class A 已经存在一些方法,我正在使用代码模型生成一个类classB
,并且在使用代码模型生成时我试图调用一个方法classA
。
我在下面试过
但它不起作用,如果有人知道如何做同样的事情,我将不胜感激
我想生成一个方法,如:
我也对如何生成以下方法感兴趣:
java - 如何使用 codemodel 使用父类的任何字段
我有一堂课和Parent
一堂课Derived
现在下面的类我想使用 CodeModel 生成
我在下面尝试但没有工作
如何调用 obj 而不是像在Parent
课堂上那样创建新对象?
java - 如何在使用 CodeModel 的方法内“生成源代码”创建和初始化 hashMap
要生成的源代码
能够创建为全局变量,但我需要在方法中创建它
sun-codemodel - 如何使用 CodeModel 初始化二维数组
我需要初始化一个二维数组,如下所示
我试过了
但它初始化一维数组,
任何帮助表示赞赏
java - 在将 CodeModel 对象保存为磁盘上的实际类之前,使 CodeModel 对象实现/继承父对象
我需要将接口的实现添加到填充的JCodeModel
对象,然后.java
使用codeModel.build("FilePath");
. 我正在使用jsonschema2pojo库来创建JCodeModel
对象。
代码是这样的:
可以选择JCodeModel
在类()中实现接口_implements()
,但我无法在上面的代码中使用它(请参阅代码中的以下注释):
sun-codemodel - 如何在代码模型中创建一个简单的赋值语句?
我想使用代码模型创建一个简单的语句,例如:-
我现在不想将它分配给任何块,而只是返回它,因为我需要稍后引用变量的名称。如何创建这样的语句以及将其存储在哪种类型的变量中?它会是一个 JStatement 吗?如果是,那怎么办?