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