1

JCodeModel は、 のimport代わりにステートメントを生成しimport staticます。たとえば、import nz.co.cloudm.cloudserv.api.pojos.core.file.attachment.Attachment.Status代わりにimport static nz.co.cloudm.cloudserv.api.pojos.core.file.attachment.Attachment.Statusコンパイラがエラーをスローするクラスがあります。import ステートメントでわかるように、クラスはクラスStatus内に存在する内部列挙型です。Attachment

コードモデルを使用して静的インポートを実現する方法を知っていますか?

または、メンバーがクラス修飾名を使用するようにするにはどうすればよいですか?

private nz.co.cloudm.cloudserv.api.pojos.core.file.attachment.Attachment.Status status;
4

1 に答える 1

2

古いライブラリであるため、コードモデルに静的インポートを定義する機能があるかどうかはわかりません。ref()静的インポートは実際にはプログラマーの利便性にすぎないため、メソッドを介して列挙型を使用できます。

public class Tester {

    public enum Status{
        ONE, TWO;
    }

    public static void main(String[] args) throws JClassAlreadyExistsException, IOException {
        JCodeModel codeModel = new JCodeModel();

        JClass ref = codeModel.ref(Status.class);

        JDefinedClass outputClass = codeModel._class("Output");

        outputClass.field(JMod.PRIVATE, ref, "status", ref.staticRef(Status.ONE.name()));

        codeModel.build(new StdOutCodeWriter());
    }
}

出力:

public class Output {
    private test.Tester.Status status = test.Tester.Status.ONE;
}
于 2014-06-18T03:56:55.697 に答える