W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
IntelliJ IDEA 生成 toString()的操作可以創(chuàng)建或更新 toString() 方法。
bean 通常需要將其字段值轉儲為調試目的,而為其編寫轉儲代碼則相當繁瑣。該生成 toString()操作能夠生成 toString() 方法,以簡單的方式轉儲所有字段。
tip:如果在 IntelliJ IDEA 中toString()方法已經(jīng)存在于類中,則在繼續(xù)操作之前,將提示您刪除此方法,具體取決于方法的值是否已存在設置( 生成 toString()設置對話框)。
toString()
方法的字段。
默認情況下,所有可用的字段都被選中。點擊按鈕選擇“無結果”,只添加一個由方法聲明和 return 語句組成的 toString () 方法。
有關詳細信息,請參閱 "生成 toString ()" 部分對話框。
準備好后,點擊“確定”。
在節(jié)點 toString () 問題下有兩個相關的代碼檢查:
檢查類不覆蓋 toString()方法可用于標識可能忘記添加 toString() 方法的任何類 。此檢查使用“排除”設置以忽略不應轉儲的字段的類。其他設置是通過使用與其類名匹配的正則表達式來排除某些類。默認情況下,此選項用于排除任何異常(Exception)類。
檢查 'toString()' 方法中未使用的字段:此檢查可用于標識不同步(out-of-synchronization)的情況,您可以使用現(xiàn)有的 toString() 方法來轉儲字段。但是,稍后將某些字段添加到該類中,并且這些新字段不會在 toString() 方法中被轉儲 。 通過使其能夠將錯誤顯示為警告來更改此檢查的嚴重性。這將在編輯器中突出顯示任何未使用的字段;右側將使用黃色標記指示錯誤的位置。
Log4j 用于日志記錄。要啟用日志記錄,請打開以編輯 IntelliJ IDEA 使用的 log.xml 文件。該文件位于 IntelliJ IDEA 安裝的 bin 文件夾中。將以下行添加到此文件中:
<category name="org.jetbrains.generate.tostring">
<priority value="DEBUG"/>
<appender-ref ref="FILE"/>
</category>
請考慮以下代碼:
public class MyServerConfigBean {
private String name;
private String url;
private int port;
private String[] validIPs;
...
}
將插入符號放在類中的某處,按 Alt+Insert,然后從彈出列表中選擇 toString()。以下的方法現(xiàn)在會添加到 bean 中:
public String toString() {
return "MyServerConfigBean{" +
"name='" + name + '\'' +
", url='" + url + '\'' +
", port=" + port +
", validIps=" + Arrays.toString(validIps) +
'}';
}
請考慮以下代碼:
public class MyServerConfigBean {
private String name;
private String url;
private int port;
private String[] validIPs;
...
public String getServerAddress() {
return url + ":" + port;
}
...
}
將插入符號放在類中某處,按 Alt+Insert,然后從彈出列表中選擇 toString()。調用操作后生成 toString () ,結果為:
public String toString() {
return "MyServerConfigBean{" +
"name='" + name + '\'' +
", url='" + url + '\'' +
", port=" + port +
", serverAddress='" + getServerAddress() + "'" +
", validIps=" + Arrays.toString(validIps) +
'}'
}
通常您不想在 toString () 方法中添加常量字段作為調試信息。所以你可以選中該復選框排除常量字段,并防止輸出中的常量字段。除此之外,您還可以按字段的名稱進行篩選,以排除一個內部調試字段。所以,在文本字段中鍵入 ^ debug,以名稱 (reg exp) 排除字段,以防止調試字段。
下面的示例顯示了排除字段的結果。原來的代碼是:
public class MyServerConfigBean {
private final static String USERNAME = "scott";
private final static String PASSWORD = "tiger";
private String name;
private String url;
private int port;
private String[] validIPs;
...
public String getServerAddress() {
return url + ":" + port;
private boolean debug = true;
}
...
}
生成一個 toString() 方法后,代碼如下所示:
public String toString() {
return "MyServerConfigBean{" +
"name='" + name + '\'' +
", url='" + url + '\'' +
", port=" + port +
", validIps=" + Arrays.toString(validIps) +
'}'
}
如您所見,在生成的代碼中不使用常量字段(USERNAME,PASSWORD)。正則表達式排除調試字段。排除的字段不會出現(xiàn)在生成 toString()對話框中。
要排除方法,請選中 "按名稱 (reg exp)" 字段排除 "方法" 復選框。例如,如果您鍵入 ^getCausedBy.* 文本字段通過按名稱(reg exp)排除方法,您將因此阻止以 getCausedBy 開頭的方法的輸出。
可以將 JavaDoc 注釋添加到生成的 toString () 方法中。這是通過在速度模板中插入 JavaDoc 注釋來完成的。請參見下面的模板示例:
/**
* Insert your JavaDoc comments here
*
* @return a string representation of the object.
*/
return "$classname{}";
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: