我最近开始使用 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)
所以我^(
在初始比赛中添加了。