Java代码生成支持泛型,以及生成的其他类

之前用JavaPoet写了一个简单的Java代码生成框架,支持得也比较简陋,如果类的属性是集合的,都不支持泛型声明。这两天有空正好补充了实现。

泛型支持本身很简单,用正则表达式匹配一下,如果是包含了<.+>的就说明是泛型声明了,稍微麻烦一点的是括号里面的类型也是本次生成的某个Java类。这里就需要先讲生成的代码实时编译成Java类,并load到当前的classloader中。Java自带的JavaCompiler就可以完成编译工作,不过class的load工作会繁琐一些,为了省事,就选择则了开源的一个库openhft的Runtime Compiler。非常好用,两句话搞定。

非常感谢这些贡献出优秀开源软件的大牛,过段时间我也把这个代码生成工具开源出来。

JavaFile javaFile = new EntityGenerator().generate(model, context);
javaFile.writeTo(new File("generated_source"));
Class aClass = CompilerUtils.CACHED_COMPILER.loadFromJava(javaFile.packageName+"."+ javaFile.typeSpec.name, javaFile.toString());

  

转载于:https://www.cnblogs.com/dubbo/p/11443861.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值