我最近开始使用 java 7,我想在现有代码中使用<> 菱形运算符。谁能告诉如何查找 ArrayList 的所有实例并将其替换为 ArrayList<>。
例如:
List<Integer> list = new ArrayList<Integer>();
会成为
List<Integer> list = new ArrayList<>();
Set对于and ,我也可以遵循相同的模式Map。
寻找([^\t (](List|Map|Set))<[^>]+>(区分大小写+正则表达式)并替换为$1<>(正则表达式)对我有用。
正则表达式:
([^\t (](List|Map|Set)): 除空格、制表符或左括号外的任何字符,后跟 List、Map 或 Set(匹配任何类型的集合)
ArrayList将匹配(即yList)LinkedList太(即dList)List不会(List 之前没有字符)<[^>]+>: 以 开头,然后是除1 次或更多的<任何字符,然后>>
$1<>: 括号之间的字符,后跟<>
如何:
1) Ctrl+H
2)
3)
在上述 regEx 中进行一些修改后,以下工作正常:
([^( |^\t](List|Map|Set))<[^>]+>
sp00m 解决方案的问题是它会搜索
access-modifier return-type someFunction(List<something> list)
还。
例如:
void fun(List<Integer> ints)
所以我^(在初始比赛中添加了。