gpt4 book ai didi

java - 如何将 CodeModel 表达式强制括在括号中?

转载 作者:太空宇宙 更新时间:2023-11-04 06:31:49 25 4
gpt4 key购买 nike

我想使用 Sun 的 CodeModel 生成一些非常常见的代码

while ((sbt = reader.readLine()) != null)
{

}

但是当我写时:

JWhileLoop whileJsonBuilder = block._while(JExpr
.ref("partJsonString").assign(JExpr.ref("reader"))
.ne(JExpr._null()));

我明白了

while (partJsonString = reader!= null) {
stringBuilder.append(partJsonString);
}

请注意,括号丢失了。如何强制括号出现在代码中?

最佳答案

不幸的是,我无法找到添加括号的现有方法。但是,您可以通过添加特殊的 JExpression 来呈现括号来扩展 JCodeModel 来处理此问题:

public class ParensExpession extends JExpressionImpl{

private JExpression expression;

public ParensExpession(JExpression expression) {
this.expression = expression;
}

@Override
public void generate(JFormatter formatter) {
formatter.p('(').g(expression).p(')');
}
}

合并到您的代码中:

JWhileLoop whileJsonBuilder = block._while(
new ParensExpession(
JExpr.ref("partJsonString").assign(JExpr.ref("reader"))
).ne(JExpr._null()));

给予:

while ((partJsonString = reader)!= null);

关于java - 如何将 CodeModel 表达式强制括在括号中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26037015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com