我想變更的方法具有一定的簽名:的Intellij結構代替改變方法簽名
public OldReturnType get.*(Params) {
//lots of code
}
這樣:
public NewReturnTyp get.*(Params) {
//lots of code
}
- >我想更換返回類型。我嘗試過使用SSR:
複製現有模板「類的方法」。這產生了模板:
class $ Class $ { $ ReturnType $ $ MethodName $($ ParameterType $ $ Parameter $); }
我第一次嘗試,以取代$返回類型$ OLDTYPE和NEWTYPE respectivly:
搜索模板:
class $Class$ {
OldType $MethodName$($ParameterType$ $Parameter$);
}
更換模板:
class $Class$ {
NewType $MethodName$($ParameterType$ $Parameter$);
}
這給了我所有該方法,但如果我替換它,該方法被刪除。
然後我試圖改變格局的方式如下:
搜索模板:
class $Class$ {
$OldType$ $MethodName$($ParameterType$ $Parameter$);
}
而且規定,即$ OLDTYPE $應該是搜索的目標。我還爲此變量指定了RegEx模式:OldType。
更換模板:
class $Class$ {
NewType $MethodName$($ParameterType$ $Parameter$);
}
這也找到所有的方法,但它們會刪除,如果我取代。我嘗試了很多不同的方式,總是得到相同的結果:如果我替換了匹配,方法就會被刪除。我該如何指定搜索/替換模板才能在簽名中用NewType替換OldType。
種:現在的問題是,一些參數鬆散其最終修飾符,所以我在匿名內部類中得到一些編譯器錯誤。但我現在手工完成了,我認爲你提到的錯誤是我發誓的原因( - ;)。我會接受你的回答,因爲我認爲它對下一個想做這件事的人有好的開始,但對我而言,問題解決了。 – morpheus05
我想你需要類似這樣的方法簽名: $ accessModifier $ $ static $ OldType $ MethodName $($ ParameterType $ $ Parameter $){ and set min/max分別計數到0和1 – mish
@mish在SSR中不可能使用變量作爲修飾符,模板總是需要是有效的可編譯Java代碼(片段) –