玩转Eclipse — 自动生成setter和getter方法
我們?cè)诔绦蜷_(kāi)發(fā)過(guò)程中,往往要編寫(xiě)這樣的類:類的部分或者全部屬性不希望讓外部世界直接訪問(wèn),而不用public字段修飾。這樣,方法調(diào)用成了訪問(wèn)這些屬性的唯一途徑。JavaBean就是一個(gè)很好的例子,其嚴(yán)格遵守面向?qū)ο蟮脑O(shè)計(jì)邏輯,所有屬性都是private。對(duì)于任何屬性xxx,都有public的getXxx()方法來(lái)獲取屬性和public的setXxx()方法來(lái)修改屬性。如果只有少量這樣的屬性,可以通過(guò)手動(dòng)方式為它們添加setter和getter方法。但是,如果有大量這樣的屬性,手動(dòng)添加會(huì)很費(fèi)時(shí)。
? ? ? ? 下面通過(guò)一個(gè)示例,來(lái)介紹如何通過(guò)Eclipse自動(dòng)生成需要的setter和getter方法。示例代碼如下:
[java]?view plaincopy1. ?基本設(shè)置
? ? ? ??在代碼編輯器中打開(kāi)Boy.class文件,使用快捷鍵Alt + Shift + S,再按R鍵(你Eclipse中的快捷鍵可能不同),或者右鍵選擇Source -> Generate Getters and Setters...,操作如下圖所示:
? ? ? ??進(jìn)入自動(dòng)生成setter和getter方法的設(shè)置界面如下:
- Select
Select All:選擇為所有的屬性添加setter和getter方法
Deselect All:取消所有已選擇的setter和getter方法
Select Getters:選擇所有屬性的getter方法
Select Setters:選擇所有屬性的setter方法
- Insertion point
可以選擇為該文件的“First Member”,“Last Member”,或者某個(gè)元素之后等。
- Sort by
Fields in getter/setter pairs:每個(gè)屬性的getter和setter方法成對(duì)排序
First getters, then setters:所有的getter方法在所有的setter方法之前
- Access modifier
可以選擇訪問(wèn)權(quán)限:public,protected,default,private
還可以選擇是否為final或者synchronized
- Comments
可以選擇是否在自動(dòng)生成setter和getter方法的同時(shí),為它們生成注釋
? ? ? ?另外,在Code Template中可以設(shè)置自動(dòng)生成的setter和getter方法的主體和注釋的格式。
2. setter方法的參數(shù)加前綴
? ? ? ??一般情況下,自動(dòng)生成的setter方法中的參數(shù),會(huì)跟屬性完全相同,需要通過(guò)this來(lái)區(qū)分同名屬性和參數(shù)。示例如下:
[java]?view plaincopy
? ? ? ??在比較嚴(yán)的代碼格式檢查中,這種情況會(huì)提示‘xxx’ hides a field的問(wèn)題。為了避免這種checkstyle的問(wèn)題,通過(guò)在該項(xiàng)目的.settings目錄下的org.eclipse.jdt.core.prefs文件,在其末尾添加org.eclipse.jdt.core.codeComplete.argumentPrefixes=new,就可以在自動(dòng)創(chuàng)建的所有setter方法的參數(shù)前面加上new前綴。這種配置,需要重新啟動(dòng)Eclipse才能生效。這種方法的具體操作和分析,可以參考《玩轉(zhuǎn)Eclipse — 項(xiàng)目的.settings目錄解密》。
? ? ? ??進(jìn)行以上配置之后,自動(dòng)生成的setter和getter方法后的完成的代碼如下:
[java]?view plaincopy
? ? ? ??? ? ? ??1)setter方法的參數(shù)會(huì)自動(dòng)大寫(xiě)屬性的首字母,并加上前綴。
? ? ? ??? ? ? ??2)setter方法的參數(shù)在屬性前面加了前綴之后,就沒(méi)有必要再用this區(qū)分屬性和參數(shù)。
? ? ? ??? ? ? ??3)對(duì)于boolean類型的屬性,getter不再是get開(kāi)頭,而是以is開(kāi)頭。
from:?http://blog.csdn.net/jmyue/article/details/11903899
總結(jié)
以上是生活随笔為你收集整理的玩转Eclipse — 自动生成setter和getter方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 10个实用的但偏执的Java编程技术
- 下一篇: 积跬步,聚小流------html知识大