gpt4 book ai didi

java - 搜索 java 表达式?

转载 作者:行者123 更新时间:2023-11-29 08:58:25 25 4
gpt4 key购买 nike

我经常发现自己在 Java 中搜索特定形式的语句。假设我写了一个简单的函数来表达一个成语,比如“取这个值,如果它为 null 则取一个默认值”

/** return a if not null, the default otherwise. */
public static <T> T notNull(T a, T def) {
if (a == null)
return def;
else
return a;
}

现在如果我已经写了这个,我想在我的代码中寻找它可以用来简化的情况,例如

(some.longExpressionWhichMayBeNull() ? "default string" : some.longExpressionWhichMayBeNull())

问题是编写一个匹配 java 语法的正则表达式是相当棘手的。当然可以,但是很容易出错。很难让正则表达式忽略所有正确位置的空格,总是准确地找出字符串的开始和停止位置,知道强制转换和函数调用之间的区别等。

这似乎也有点浪费,因为我们已经有了一个 java 解析器,它已经这样做了。

所以我的问题是:是否有一些 Java 语法感知替代正则表达式来搜索特定(子)表达式?

最佳答案

您可能需要构建 Java 源文件的抽象语法树,然后对其进行分析。可能会利用 PMD(http://pmd.sourceforge.net/)并编写自定义规则(http://pmd.sourceforge.net/pmd-5.0.5/howtowritearule.html)来检测和标记可以按照您的描述进行优化的表达式。

关于java - 搜索 java 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19004167/

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