问题标签 [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.
jaxb - CodeModel中ClassOutline/JClass/CClass的作用是什么?
我的问题涉及编写 JAXB 插件,特别是 JAXB 代码模型。
ClassOutline
(和它的同伴)和JClass
(和同伴)和CClass
(和同伴)的作用是什么?查看相应包中的类列表时,不清楚什么是鸡什么是鸡蛋。
我的解释是CClass
( CPropertyInfo
, CEnumConstant
, ...) 是 XJC 在 XSD 的初稿解析时创建的。然后发生了一些神奇的事情,这个模型被转换为JClass
( JFieldVar
, JEnumConstant
, ...) 并且在这个转换过程中应用了自定义。之后调用插件。ClassOutline
被用作这两个模型之间的桥梁。整体看起来非常复杂。
通过这些并行模型,我相信可以通过多种方式得出相同的信息。例如类字段类型:
JClass#fields()
→JFieldVar#type
→JType
CClassInfo#getProperties()
→CPropertyInfo#baseType
→JType
我正在寻找上述模型生命周期的详细解释。谢谢。
java - 在方法中重用时如何获取类的泛型“T”
我正在为 Fluent API 构建代码生成器。我想为每个现有的(POJO)类创建一个新类。我没有控制现有的课程。我通过反射解析现有方法,如果遇到 setter 或“add”方法,我会在我的 Fluent-Wrapper 类中为此创建一个方法,所以我可以说 child().values(....).get ()。
这适用于简单的参数。我花了一段时间才弄清楚如何处理 ParameterizedTypes,但我现在可以处理它了。我没有得到的是如何为泛型参数创建一个具体方法,该方法的类型不是在方法本身上定义,而是在包含类上。
我有这样的事情:
现在我尝试通过 JCodeModel 生成代码,需要解析参数“values”的类型。问题:我得到一个包含 List 和 TypeVariable "T" 的 ParameterizedType。但我无法将“T”映射回字符串。但我无法弄清楚如何通过实现“Child”来获得具体的“T”类型。任何人?
澄清:我这样做,当涉及到“TypeVariable”的情况时,不需要“T”而是“String”
java - JCodeModel 将带有点分类的字段声明为类型
我正在使用 JCodeModel 自动生成一些代码。
在某些时候,代码模型似乎将我的所有 String 类型声明为:
我遇到过几次这个问题并自己解决了(一个可能的原因是声明一个字段或方法参数的名称以大写字母开头)。
这次我不明白原因。
任何人都知道什么可能导致代码模型以这种方式声明它?
谢谢
java - 退出后保存 Jcodemodel 对象
我对 JCodeModel (SUN) 有疑问。我的程序每天都在运行,我想在当前运行之前创建的类中添加一些功能。
JcodeModel 支持这个吗?如果没有,有什么选项可以将 JCodemodel 对象保存在外部文件中,加载以前的 JcodeModel,然后添加新功能?
谢谢。
java - JCodeModel - How to chain invoke methods
I am trying to figure out how to use a loop to build a JExpression
that I can use in an .assign()
call. I know that you can do something like JExpr.invoke("methodA").invoke("methodB")
with JCodeModel, but I want to be able to add each .invoke()
method based on a list of method names. Does anyone know how to do this?
Example of my Generator code [this is assuming that I have modified the ArrayList.add() method to return the ArrayList]:
Example of what I am trying to generate:
My problem is that this method doesn't chain the invoke methods, but replaces them so the generated code looks like this:
java - 有没有办法将 java arraylist 对象复制到 codemodel 生成的源中?
我在使用codemodel的代码生成类中有一个填充的arraylist(非codemodel),我想在生成的代码中使用它。有什么办法吗?它有点“穿越世界”,因为生成的代码不引用或不依赖于生成它的代码,但是我仍然想使用 arraylist 的值,而不必在遍历值时手动复制它价值......必须有一种方法来做到这一点,因为有字符串,数字等......?
我的示例代码如下:
正如您在我的作业声明中看到的那样,有一个 {X} 空白字段,这是我试图弄清楚如何编写的。话虽如此,{X} 应该引用 makeHeadersWrapper 签名中的“headersList”参数。有什么方法可以将变量的值引用为 {X} 并使其成为代码模型 JExpr(ession)?请帮我解决{X}!:P
真诚地感谢, 皮奥特
java - 如何将 CodeModel 表达式强制括在括号中?
我想使用 Sun 的 CodeModel 生成一些非常常见的代码
但是,当我写:
我明白了
注意括号不见了。如何强制括号出现在代码中?
sun-codemodel - 如何缩小匿名类?
我想生成一些如下代码:
我尝试了以下方法:
下面出现异常,由“anonymousSomeClass.narrow(jClass)”引起。如果我删除'.narrow(jClass)',一切都会好起来的。
谢谢。
jcodemodel - 如何使用 jcodeModel 生成静态初始化块
我需要用 jcodemodel 生成这样的东西
谷歌没有帮助。有一个类JBlock
,但没有关于初始化块的内容。
jcodemodel - 如何使用 JCodeModel 在方法内生成注释
我需要这样的东西
这是我如何生成一个类和一个方法