将NetBeans代码模板弯曲到我的意愿
任何閱讀過我關(guān)于NetBeans的文章的人都知道,我真的很喜歡NetBeans的眾多功能。 但是,最近,我發(fā)現(xiàn)自己對(duì)NetBeans特定功能的特定問題越來越惱火。 最終,它使我煩惱不已,促使我開始研究如何根據(jù)自己的喜好禁用或更改該功能。 這篇文章介紹了我如何學(xué)會(huì)按自己的意愿彎曲NetBeans代碼模板,從而使我對(duì)模板代碼完成更加滿意。
NetBeans為for循環(huán)的幾種不同表現(xiàn)形式提供了幾種代碼模板。 這些包括自動(dòng)代碼完成for陣列上的環(huán),在集合上,上iterables,在地圖上,在整數(shù)到指定的最大值,等等。 通過
默認(rèn)情況下,在NetBeans代碼編輯器中鍵入適當(dāng)?shù)目s寫并按空格鍵后,將自動(dòng)調(diào)用這些代碼模板。
我遇到的問題是,在大多數(shù)情況下,我只是嘗試鍵入' for ( '以在集合上使用增強(qiáng)的for循環(huán),但是縮寫為'for'的NetBeans代碼模板正在啟動(dòng)并在其中生成for循環(huán)。與十次迭代的整數(shù)雖然對(duì)于預(yù)定次數(shù)的歷史這樣的整數(shù)迭代是最常見的用途。 for ,引入的增強(qiáng)的for循環(huán)與J2SE 5改變了一切;我現(xiàn)在使用for用于增強(qiáng)的for循環(huán)在集合上,數(shù)組,并且映射的次數(shù)遠(yuǎn)遠(yuǎn)超過了我使用整數(shù)迭代規(guī)定次數(shù)的次數(shù)。
接下來的兩個(gè)屏幕快照演示了我剛剛描述的問題。 第一個(gè)屏幕快照顯示了NetBeans代碼編輯器,當(dāng)我準(zhǔn)備開始鍵入for循環(huán)以遍歷提供給我要實(shí)現(xiàn)的方法的集合時(shí)。 第二個(gè)屏幕快照顯示了NetBeans在編輯器中在“ for”之后鍵入空格后自動(dòng)生成的代碼。 這不是我想要的,因此我必須刪除生成的大部分代碼,以使其適應(yīng)我的集合。
這種行為對(duì)我來說是個(gè)問題,原因是縮寫“ for”恰好也是我要輸入的Java關(guān)鍵字。 當(dāng)我在'for'后面輸入空格時(shí),我只是在輸入Java代碼,但是NetBeans將其解釋為我,這意味著我希望for循環(huán)的代碼模板在整數(shù)上生成。 當(dāng)我輸入“ for”時(shí),我?guī)缀鯊膩聿恍枰?解決此問題的一種方法是更改??NetBeans模板,以便使用空格以外的其他方式激活它們。 下一系列快照演示了如何執(zhí)行此操作。 在這種情況下,我將Shift + Space更改為激活代碼模板的內(nèi)容,但是NetBeans還支持使用Tab或Enter作為擊鍵來激活鍵入的縮寫的代碼模板。
隨著代碼模板的更改,使它們被激活(在Shift + Space上擴(kuò)展了模板),而不僅僅是在Space上,困擾我的問題就消失了。 這顯示在下一個(gè)屏幕快照中。 該圖顯示,在我鍵入“ for”和一個(gè)空格之后,代碼保持原樣,而不是觸發(fā)模板代碼完成,而添加了我不希望的“ for”循環(huán)實(shí)現(xiàn)。
我剛剛演示的解決方案(將Space更改為Space + Shift作為擴(kuò)展代碼模板的激活)肯定使我擺脫了使用“ for”循環(huán)時(shí)我很少想要的代碼完成的最初麻煩。 當(dāng)我確實(shí)需要時(shí),我仍然可以使用Space + Shift來完成代碼。 最后一點(diǎn)很重要,因?yàn)镹etBeans確實(shí)提供了其他幾個(gè)“ for”循環(huán)完成代碼模板,其中包括一個(gè)適合我要使用“ for”循環(huán)的典型情況的模板。 下一個(gè)屏幕快照顯示了NetBeans中使用兩個(gè)可用的“ for”代碼模板的代碼,但其中兩個(gè)都沒有。
作為該圖像指示,NetBeans的載體“ 為 ”(整數(shù)迭代已經(jīng)示出),“FORC”(迭代器上收集,允許不允許在迭代器行為通過增強(qiáng)for-each循環(huán)),“ 前 ”(換每個(gè)樣式一般收集/枚舉迭代;我最常使用的迭代),“ fori ”(數(shù)組迭代),“ forl ”( List迭代)和“ form ”( 映射迭代)作為代碼模板的縮寫,可自動(dòng)生成不同類型的“ for”循環(huán)。 盡管未在圖中顯示,但NetBeans還支持代碼模板縮寫“ forst ”,用于在StringTokenizer上生成“ for”循環(huán),以及“ forv ”,用于在Vector上生成“ for”循環(huán)。
此時(shí),當(dāng)我想要一種不同的“ for”循環(huán)類型時(shí),鍵入適當(dāng)?shù)腘etBeans代碼模板縮寫后,我可能已經(jīng)停止并只是計(jì)劃使用Shift + Space。 但是,這有一些缺點(diǎn)。 首先,似乎更改啟動(dòng)代碼模板生成所依據(jù)的密鑰庫是“要么全有要么全無”; 當(dāng)我將其應(yīng)用于“ for”模板時(shí),所有模板都只能通過Shift + Space激活。 還有其他模板可以更自然地匹配我的需求,我喜歡通過空格激活它們,而不需要使用Shift + Space。 其次,因?yàn)槲掖_實(shí)在大多數(shù)情況下都使用“ for”循環(huán)來遍歷使用“ for Each”樣式增強(qiáng)的for循環(huán)遍歷集合的同一情況,所以我想我的偏好是每次生成我輸入“ for”后跟一個(gè)空格的時(shí)間。 我只需要在極少數(shù)情況下“撤消”這一代,而不希望使用增強(qiáng)的for循環(huán)。 幸運(yùn)的是,NetBeans允許我創(chuàng)建新的代碼生成模板并修改現(xiàn)有的模板。 這使我可以將“ for”更改為我想要的情況(“ fore”情況)。 接下來,我將探討這種方法。
我的計(jì)劃是將“ fore”模板的“擴(kuò)展文本”復(fù)制為“ for”模板的擴(kuò)展文本。 但是,我不想在極少的情況下丟失默認(rèn)情況下“ for”的內(nèi)容,因此我想創(chuàng)建一個(gè)新的代碼模板,可以將當(dāng)前的“ for”擴(kuò)展文本復(fù)制到其中。 就我而言,我正在創(chuàng)建一個(gè)縮寫為“ fort”的新模板,將現(xiàn)有的“ for”擴(kuò)展模板文本復(fù)制到其中。 然后,我可以將“ fore”的擴(kuò)展模板文本復(fù)制到“ fore”。 這有效地使NetBeans生成我在鍵入“ for”然后輸入空格時(shí)幾乎總是想要的代碼。 這也使我可以更改代碼模板,以僅在空格上激活,而不需要Shift + Space。 接下來的三個(gè)屏幕快照演示了此過程。
修改“ for” NetBeans代碼模板的積極影響是,我能夠?qū)⒌兞康膄inal關(guān)鍵字添加到模板中。 這意味著我不需要手動(dòng)添加“ 最終 ,當(dāng)我在模板生成后修飾符希望它有 。 當(dāng)然,這意味著我也可以在NetBeans提供的其他模板中添加final關(guān)鍵字。 通過將“ for”代碼模板更改為我通常想要的情況(在集合中使用for-each-style進(jìn)行迭代),可以在要實(shí)現(xiàn)的方法中實(shí)現(xiàn)它。 這顯示在下一個(gè)屏幕快照中。
最后一張圖片顯示,當(dāng)我在'for'關(guān)鍵字后鍵入一個(gè)空格時(shí),我現(xiàn)在得到了我最想要的'for'循環(huán)。 在極少數(shù)情況下,我想要其他類型或使用'for'循環(huán),則可以改用這些類型的代碼模板的首字母縮寫,或者(更可能是因?yàn)槲铱赡懿挥浀檬褂眠@些很少使用的代碼模板)只是刪除代碼那不適用。
結(jié)論
NetBeans以一種我?guī)缀醪幌胍姆绞綖槲摇巴瓿伞蔽业摹?for”循環(huán)的事實(shí)真讓我感到不安(為“ 您使我完整 ”賦予了新的含義)。 幸運(yùn)的是,NetBeans提供了可接受的選項(xiàng)來消除這種刺激性。 如本文所演示的,很容易將NetBeans代碼模板更改為基于明顯比空格更明確的內(nèi)容(Shift + Space,Tab或Enter)進(jìn)行擴(kuò)展。 更好的是,NetBeans允許添加,修改和刪除模板,從而在確定應(yīng)用哪些模板以及如何應(yīng)用它們方面具有更大的靈活性。 這看起來似乎是一件小事,但由于我經(jīng)常編寫的“ for”循環(huán)不再對(duì)我造成錯(cuò)誤,因此我感到非常高興。
翻譯自: https://www.javacodegeeks.com/2013/04/bending-netbeans-code-templates-to-my-will.html
總結(jié)
以上是生活随笔為你收集整理的将NetBeans代码模板弯曲到我的意愿的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理财风险评测失效是什么意思?
- 下一篇: 美国有证监会吗?