2 回答

TA貢獻(xiàn)1780條經(jīng)驗 獲得超1個贊
不確定這在更通用的設(shè)置中如何工作,但我會:
重構(gòu)
Foo
以將名稱更改getS
為非常獨特的名稱,例如XXXXXXXXX
字符串替換
.XXXXXXXXX()
為空字符串正則表達(dá)式 stringn 替換
Foo (\w+) = new Foo\("(\w+)"\);
為String $1 = "$2"
;
這將處理該run
方法中的所有內(nèi)容。現(xiàn)在您只需要手動刪除Foo
,雖然這不是 IntelliJ 重構(gòu),但它只需要在一個地方完成,因此可能是可以接受的。

TA貢獻(xiàn)1827條經(jīng)驗 獲得超8個贊
更安全的方法是使用結(jié)構(gòu)替換
在菜單中搜索結(jié)構(gòu)替換
$Instance$.getS().$MethodCall$($Parameter$)
在搜索框中輸入在 $Instance$ 上添加一個過濾器,使其僅成為 Foo 的實例
用。。。來代替:
$Instance$.getS().$MethodCall$($Parameter$)
之后,您可以繼續(xù)進(jìn)行結(jié)構(gòu)替換并查找所有實例,然后替換它們,但運(yùn)行并創(chuàng)建從類到“String”的
Migrate
自定義類型映射會更容易Foo
如果您想再次使用結(jié)構(gòu)替換,您可以使用類似的內(nèi)容進(jìn)行查找和替換
Foo $name$ = new Foo($Parameter$);
String $name$ = $Parameter$;
添加回答
舉報