これは愚かな質問かもしれませんが、私はその主題が何を語っているかを知りたいと思います。私は、新たに宣言されたclassOrInterfaceオブジェクトに、新しい新しいCompilationUnitで新しいStringフィールドを追加したいと考えています。しかし、私がソースファイルから知ることから、そのオプションは不可能です。プリミティブクラスは、他のすべてのプリミティブ、Long、char、バイトなどの列挙型のみを保持します。JavaParserで新しいコンパイル単位に文字列フィールドを追加する
私に何か不足していますか?または、開発者にStringオプションについて忘れてもらえますか?
がRiduidelsの答えに 感謝を解決し、私はいわば、コードをクラックするために管理:)事は新しいClassOrInterfaceTypeを作成することでしたし、十分な文字列、簡単なそれを呼び出します。 JavaParserの背後にいる人々は、他のプリミティブと同じようにStringの列挙型を追加する必要があります。作業コード:
public static void main(String[] args){
// TODO Auto-generated method stub
// creates the compilation unit
CompilationUnit cu = createCU();
// prints the created compilation unit
System.out.println(cu.toString());
}
/**
* creates the compilation unit
*/
private static CompilationUnit createCU() {
CompilationUnit cu = new CompilationUnit();
// set the package
cu.setPackage(new PackageDeclaration(ASTHelper.createNameExpr("java.parser.test")));
// create the type declaration
ClassOrInterfaceDeclaration type = new ClassOrInterfaceDeclaration(ModifierSet.PUBLIC, false, "GeneratedClass");
ASTHelper.addTypeDeclaration(cu, type); // create a field
FieldDeclaration field = ASTHelper.createFieldDeclaration(ModifierSet.PUBLIC, new ClassOrInterfaceType("String"),"test");
ASTHelper.addMember(type, field);
return cu;
}
ありがとうRiduidel!
これが機能する場合は、コードを私と共有してください。私はとても失われていると感じます。 – SwissArmyKnife
私の質問が更新されました。あなたはほぼ100%感謝しました。 – SwissArmyKnife