zoukankan      html  css  js  c++  java
  • 使用codemodel生成Java代码

    例子

            JCodeModel cm = new JCodeModel();
            JDefinedClass dc = cm._class("foo.Bar");
            dc.annotate(cm.ref("org.springframework.stereotype.Repository")).param("value", "apnService");
    
            dc.field(JMod.PRIVATE + JMod.STATIC, cm.parseType("String"), "staticVar", JExpr.lit("abc"));
             dc.field(JMod.PUBLIC + JMod.STATIC + JMod.FINAL, cm.INT, "MAX_ARRAY_SIZE", JExpr.lit(25));
    
            JArray array = JExpr.newArray(cm.parseType("String")); // 创建类型为数组
            dc.field(JMod.PUBLIC + JMod.STATIC + JMod.FINAL, cm.parseType("String[]"), "SORTS", array);
            array.add(JExpr.lit("createdAt"));
            array.add(JExpr.lit("updatedAt"));
    
            JMethod m = dc.method(0, int.class, "foo");
            m.body()._return(JExpr.lit(5));
    
            JMethod m2 = dc.method(JMod.PUBLIC, cm.VOID, "bar");
            m2.javadoc().add("This method will say Hello to the name.");
            m2.annotate(Override.class);
            m2.annotate(cm.ref("javax.ws.rs.GET"));
            m2.annotate(cm.ref("javax.ws.rs.Path")).param("value", "/getCustomerInfo").param("name", "appPushMessageMapper");
            JBlock block = m2.body();
            JType type = cm.parseType("String");
            JVar var = block.decl(type, "fieldVar");
            JVar var1 = block.decl(type, "fieldVar1", JExpr.lit("test"));
            JType typeMap2 = cm.ref("java.util.Map").narrow(cm.ref("String"), cm.ref("Object"));
            JType typeMap3 = cm.ref("java.util.HashMap").narrow(cm.ref("String"), cm.ref("Object"));
            block.decl(typeMap2, "map", JExpr._new(typeMap3));
    
    
            JAnnotationUse ja;
            JMethod m3 = dc.method(JMod.PUBLIC, cm.parseType("String"), "get");
            JVar jv = m3.param(cm.parseType("String"), "id");
            ja = jv.annotate(cm.ref("Param")).param("value", "id");
            jv = m3.param(cm.ref("java.lang.String"), "site");
            ja = jv.annotate(cm.ref("javax.jws.WebParam"));
    
            // construct a Map<String, Integer>
            JType typeMap = cm.ref("java.util.Map").narrow(cm.ref("String"), cm.ref("Object"));
            jv = m3.param(typeMap, "args");
            ja = jv.annotate(cm.ref("Param")).param("value", "params");
    
            File file = new File("d:/home/tomcat/code/");
            file.mkdirs();
            cm.build(file);
  • 相关阅读:
    apple苹果产品国行和港行的区别
    iOS ifdef ifndef endif
    objectiveC【语法】修饰符 static extern const
    iOS关于Xcode上的Other linker flags
    win7 64位旗舰版下载
    关于ios 和 android 录音(语音)对聊文件格式问题
    关于 NSData 的数据类型(2进制,16进制之间)及深入剖析
    iOS调用系统相册、相机 显示中文标题
    xcode各个版本下载 xcode7 xcode6 xcode5
    IOS开发之----全局变量extern的使用
  • 原文地址:https://www.cnblogs.com/milton/p/5968349.html
Copyright © 2011-2022 走看看