Question
對已經存在的類別加入新的attribute
Answer
作法是透過TreeMaker#VerDef()
來產生新的variable的定義,然後透過JCClassDecl
的defs#prepend()
加到類別的Class Tree上。
以下是使用TreeMaker#VerDef()
產生serialVersionUID
的定義和初始化。
1 | private JCTree.JCVariableDecl genSerialVersionUIDVariable() { |
以下是把VariableTree加到ClassTree的寫法
1 | jcClassDecl.defs = jcClassDecl.defs.prepend(genSerialVersionUIDVariable()); |
這個VariableTree對應的java程式碼如下
1 | private static final long serialVersionUID = 1L; |