JavaPoet生成.java源代码

JavaPoet可用于生成.java源代码,由伟大的square公司出品。

当我们在处理注解或元数据文件的时候,往往有自动生成源代码的需要。特别是针对编译器间的注解,通过生成.java源代码,相比运行期注解,性能有大大提升。
面我们就来看一下javapoet的用法:
在贴代码前,我不得不先讲一下javapoet里面常用的几个类:
JavaFile 包含一个顶级类的Java文件。
TypeSpec 代表一个类,接口,或者枚举声明。
MethodSpec 代表一个构造函数或方法声明。
FieldSpec 代表一个成员变量,一个字段声明。
ParameterSpec 方法参数
AnnotationSpec 枚举

比如我们要生成如下一段代码

package com.example.helloworld;

public final class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello, JavaPoet!");
  }
}

通过JavaPoet来生成

//--生成main方法
MethodSpec main = MethodSpec.methodBuilder("main")
    .addModifiers(Modifier.PUBLIC, Modifier.STATIC)
    .returns(void.class)
    .addParameter(String[].class, "args")
    .addStatement("$T.out.println($S)", System.class, "Hello, JavaPoet!")
    .build();
	
//--声明类  public final class HelloWorld
TypeSpec helloWorld = TypeSpec.classBuilder("HelloWorld")
    .addModifiers(Modifier.PUBLIC, Modifier.FINAL)
    .addMethod(main)
    .build();
	
//--生成HelloWorld.java
JavaFile javaFile = JavaFile.builder("com.example.helloworld", helloWorld)
    .build();

javaFile.writeTo(System.out);

更多使用方法请参考  https://github.com/square/javapoet

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值