0

コードを生成するために、sun のコード モデル (2.4.1) クラスを使用しています。クラスを JInvocation.arg に渡すにはどうすればよいですか? 私が生成しようとしているコードは次のとおりです。

JAXBContext jc;
jc = JAXBContext.newInstance(NaturalLanguageUsage.class);

私が実行しているコードは次のとおりです。

JClass importJAXBContext = codeModel.directClass(javax.xml.bind.JAXBContext.class.toString());
JType typeJAXBContext = codeModel._ref(javax.xml.bind.JAXBContext.class);
JVar varJc = block.decl(typeJAXBContext, "jc");

JInvocation invokeJAXBContext = block.staticInvoke(importJAXBContext, "newInstance");
invokeJAXBContext.arg(??); // how do I pass NaturalLanguageUsage.class

私が作りたいもの:

JAXBContext jc;
jc = JAXBContext.newInstance(NaturalLanguageUsage.class);

またはさらに良い:

JAXBContext jc = JAXBContext.newInstance(NaturalLanguageUsage.class);
4

1 に答える 1

2
    JClass importJAXBContext = codeModel.ref(javax.xml.bind.JAXBContext.class);
    JVar varJc = block.decl(importJAXBContext, "jc");

    JClass naturalLangClassRef = codeModel.ref(NaturalLanguageUsage.class);

    JInvocation invokeJAXBContext = importJAXBContext.staticInvoke("newInstance");
    invokeJAXBContext.arg(naturalLangClassRef.dotclass());

    block.assign(varJc, invokeJAXBContext);

宣言と割り当てを 1 行で作成するには、次のようにします。

    JVar varJc = block.decl(importJAXBContext, "jc", invokeJAXBContext);
于 2015-10-09T20:33:08.703 に答える