java 抽象语法树(AST)系列二:变量定义

第一讲:抽象语法树基本知识

一、字面量

字面量并不是定义,而是一个字面表达式,比如a=1,1就是一个字面

使用treeMaker.Literal进行定义

//com.sun.tools.javac.code.TypeTag 定义了各种基本的类型
treeMaker.Literal(typeTag, o);

二、int

使用JCVariableDecl进行变量的定义,注意modifier。

注意:基本类型即使也对了,编译的时候也会编译成int a = true这种形式,所以最好使用包装类型

JCTree.JCVariableDecl intI1 = treeMaker.VarDef(
        treeMaker.Modifiers(Flags.PARAMETER),
        names.fromString("intI1"),
        treeMaker.Ident(names.fromString("Integer")),
        treeMaker.Literal(i)
);
// 注意:实际生成了 int intI2 = true;
JCTree.JCVariableDecl intI2 = treeMaker.VarDef(
        treeMaker.Modifiers(Flags.PARAMETER),
        names.fromString("intI2"),
        treeMaker.TypeIdent(TypeTag.INT),
        treeMaker.Literal(TypeTag.INT, i)
);

三、short

//  注意:实际生成了 short short1 = true;
        JCTree.JCVariableDecl short1 = treeMaker.VarDef(
                treeMaker.Modifiers
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值