第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

IntelliJ 重構(gòu)為內(nèi)聯(lián)冗余數(shù)據(jù)類

IntelliJ 重構(gòu)為內(nèi)聯(lián)冗余數(shù)據(jù)類

月關(guān)寶盒 2023-09-27 10:28:10
是否有一系列 IntelliJ 自動重構(gòu)可以消除多余的類 Foo?重構(gòu)前:  public static class Foo {    private final String s;    public Foo(String s) {      this.s = s;    }    public String getS() {      return s;    }  }  private static void run() {    Foo f = new Foo("blah");    f.getS().length();    f.getS().getBytes();    Foo f2 = new Foo("blahg");    f2.getS().length();    f2.getS().getBytes();  }重構(gòu)后:  private static void run() {    String f = "blah";    f.length();    f.getBytes();    String f2 = new "blahg";    f2.length();    f2.getBytes();  }在我的具體案例中進(jìn)行自動重構(gòu)的原因是現(xiàn)實生活中 Foo 被使用了幾千次。但我也只是感興趣。使用其他自動化步驟將代理對象獲取到 Foo 的狀態(tài)非常容易,但我只是不知道如何進(jìn)行最后一點。爪哇intellij-idea重構(gòu)自動重構(gòu)
查看完整描述

2 回答

?
慕神8447489

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),但它只需要在一個地方完成,因此可能是可以接受的。


查看完整回答
反對 回復(fù) 2023-09-27
?
慕仙森

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$;


查看完整回答
反對 回復(fù) 2023-09-27
  • 2 回答
  • 0 關(guān)注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號