如何在Java中反转类型参数

Jac*_*zyk 9 java eclipse refactoring

我有一个类A<X, Y>,我想以A<Y, X>一种方式重构它,以便修改它的所有引用.

Luk*_*der 5

我认为还没有在Eclipse中实现.这是一个相当罕见的重构,但......

但是,如果你在下面类型层次A是不是太复杂的是,尝试使用此正则表达式搜索替换(其中A|B|C的手段A和所有亚型A,如BC):

\b(A|B|C)<\s*(\w+)\s*,\s*(\w+)\s*>
Run Code Online (Sandbox Code Playgroud)

更新:因为你想匹配更复杂的东西,试试这个(没有人工换行符):

\b(A|B|C)<
  \s*((?:\w+|\?)(?:\s+(?:extends|super)\s+(?:\w+|\?))?)\s*,
  \s*((?:\w+|\?)(?:\s+(?:extends|super)\s+(?:\w+|\?))?)\s*>
Run Code Online (Sandbox Code Playgroud)

替换为

$1<$3, $2>
Run Code Online (Sandbox Code Playgroud)

由于您使用的是Eclipse,因此您可以手动检查每个替换的正确性