問題タブ [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
、 ...) は XSD の最初のドラフト解析で XJC によって作成されます。次に、いくつかの魔法が起こり、このモデルがJClass
( JFieldVar
、JEnumConstant
、 ...) に変換され、この変換中にカスタマイズが適用されます。その後、プラグインが呼び出されます。ClassOutline
は、これら 2 つのモデル間のブリッジとして使用されます。全体として非常に複雑に見えます。
これらの並列モデルを使用すると、同じ情報をいくつかの方法で導出できると思います。たとえば、クラス フィールド タイプは次のとおりです。
JClass#fields()
→JFieldVar#type
→JType
CClassInfo#getProperties()
→CPropertyInfo#baseType
→JType
上記のモデルのライフサイクルの詳細な説明を探しています。ありがとう。
java - タイプとしてドット付きクラスを持つフィールドを宣言する JCodeModel
コードを自動生成するために JCodeModel を使用しています。
ある時点で、コード モデルはすべての String 型を次のように宣言しているようです。
私はこの問題に数回遭遇し、自分で解決しました (考えられる理由の 1 つは、名前が大文字で始まるフィールドまたはメソッド引数を宣言することです)。
今回は理由がわかりません。
コードモデルがそのように宣言する原因となる可能性があることを知っている人はいますか?
ありがとう
java - JCodeModel - 呼び出しメソッドを連鎖させる方法
ループを使用して、呼び出しJExpression
で使用できるを作成する方法を見つけようとしています。.assign()
JCodeModel のようなことができることは知っていますが、メソッド名のリストに基づいてJExpr.invoke("methodA").invoke("methodB")
各メソッドを追加できるようにしたいと考えています。.invoke()
誰もこれを行う方法を知っていますか?
私の Generator コードの例 [これは、ArrayList.add() メソッドを変更して ArrayList を返すことを前提としています]:
私が生成しようとしているものの例:
私の問題は、このメソッドが呼び出しメソッドを連鎖させず、それらを置き換えて、生成されたコードが次のようになることです。
java - コードモデルで生成されたソースにJava arraylistオブジェクトをコピーする方法はありますか?
codemodel を使用してコード生成クラスに入力された arraylist (非 codemodel) があり、生成されたコードでそれを使用したいと考えています。これを行う方法はありますか?生成されたコードはそれを生成するコードを参照したり依存したりしないため、少し「世界を横断」していますが、値のトラバーサルで手動でコピーすることなく、配列リストの値を使用したいと思います値...文字列、数値などと同じように、これを行う方法が必要です...?
私のコード例は次のとおりです。
割り当ての宣言でわかるように、空白のフィールド {X} があります。これは、私が書き方を理解しようとしているものです。つまり、{X} は makeHeadersWrapper 署名の「headersList」パラメーターを参照する必要があります。変数の値を {X} として参照し、それをコードモデル JExpr(ession) にする方法はありますか? {X}の解決を手伝ってください!:P
心から感謝します、ピョートル
jcodemodel - JCodeModel でメソッド内にコメントを生成する方法
私はこのようなものが必要です
クラスとメソッドを生成する方法は次のとおりです