欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

玩转Eclipse — 自动生成setter和getter方法

发布时间:2025/3/21 44 豆豆
生活随笔 收集整理的这篇文章主要介绍了 玩转Eclipse — 自动生成setter和getter方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

我们在程序开发过程中,往往要编写这样的类:类的部分或者全部属性不希望让外部世界直接访问,而不用public字段修饰。这样,方法调用成了访问这些属性的唯一途径。JavaBean就是一个很好的例子,其严格遵守面向对象的设计逻辑,所有属性都是private。对于任何属性xxx,都有public的getXxx()方法来获取属性和public的setXxx()方法来修改属性。如果只有少量这样的属性,可以通过手动方式为它们添加setter和getter方法。但是,如果有大量这样的属性,手动添加会很费时。

        下面通过一个示例,来介绍如何通过Eclipse自动生成需要的setter和getter方法。示例代码如下:

[java] view plaincopy
  • /** 
  •  * The Class Boy. 
  •  */  
  • public class Boy {  
  •       
  •     /** The name. */  
  •     private String name;  
  •       
  •     /** The age. */  
  •     private int age;  
  •       
  •     /** The smart. */  
  •     private boolean smart;  
  • }  
  • 1.  基本设置

            在代码编辑器中打开Boy.class文件,使用快捷键Alt + Shift + S,再按R键(你Eclipse中的快捷键可能不同),或者右键选择Source -> Generate Getters and Setters...,操作如下图所示:


            进入自动生成setter和getter方法的设置界面如下:


    • Select

    Select All:选择为所有的属性添加setter和getter方法

    Deselect All:取消所有已选择的setter和getter方法

    Select Getters:选择所有属性的getter方法

    Select Setters:选择所有属性的setter方法

    • Insertion point

    可以选择为该文件的“First Member”,“Last Member”,或者某个元素之后等。

    • Sort by

    Fields in getter/setter pairs:每个属性的getter和setter方法成对排序

    First getters, then setters:所有的getter方法在所有的setter方法之前

    • Access modifier

    可以选择访问权限:public,protected,default,private

    还可以选择是否为final或者synchronized

    • Comments

    可以选择是否在自动生成setter和getter方法的同时,为它们生成注释

           另外,在Code Template中可以设置自动生成的setter和getter方法的主体和注释的格式。

    2. setter方法的参数加前缀

            一般情况下,自动生成的setter方法中的参数,会跟属性完全相同,需要通过this来区分同名属性和参数。示例如下:

    [java] view plaincopy
  • /** 
  •  * @param age the age to set 
  •  */  
  • public final void setAge(int age) {  
  •     this.age = age;  
  • }  
  •         在比较严的代码格式检查中,这种情况会提示‘xxx’ hides a field的问题。为了避免这种checkstyle的问题,通过在该项目的.settings目录下的org.eclipse.jdt.core.prefs文件,在其末尾添加org.eclipse.jdt.core.codeComplete.argumentPrefixes=new,就可以在自动创建的所有setter方法的参数前面加上new前缀。这种配置,需要重新启动Eclipse才能生效。这种方法的具体操作和分析,可以参考《玩转Eclipse — 项目的.settings目录解密》。

            进行以上配置之后,自动生成的setter和getter方法后的完成的代码如下:

    [java] view plaincopy
  • /** 
  •  * The Class Boy. 
  •  */  
  • public class Boy {  
  •       
  •     /** The name. */  
  •     private String name;  
  •       
  •     /** The age. */  
  •     private int age;  
  •       
  •     /** The smart. */  
  •     private boolean smart;  
  •   
  •     /** 
  •      * @return the name 
  •      */  
  •     public final String getName() {  
  •         return name;  
  •     }  
  •   
  •     /** 
  •      * @param newName the name to set 
  •      */  
  •     public final void setName(String newName) {  
  •         name = newName;  
  •     }  
  •   
  •     /** 
  •      * @return the age 
  •      */  
  •     public final int getAge() {  
  •         return age;  
  •     }  
  •   
  •     /** 
  •      * @param newAge the age to set 
  •      */  
  •     public final void setAge(int newAge) {  
  •         age = newAge;  
  •     }  
  •   
  •     /** 
  •      * @return the smart 
  •      */  
  •     public final boolean isSmart() {  
  •         return smart;  
  •     }  
  •   
  •     /** 
  •      * @param newSmart the smart to set 
  •      */  
  •     public final void setSmart(boolean newSmart) {  
  •         smart = newSmart;  
  •     }  
  • }  
  •         说明:

                    1)setter方法的参数会自动大写属性的首字母,并加上前缀。

                    2)setter方法的参数在属性前面加了前缀之后,就没有必要再用this区分属性和参数。

                    3)对于boolean类型的属性,getter不再是get开头,而是以is开头。


    from: http://blog.csdn.net/jmyue/article/details/11903899

    总结

    以上是生活随笔为你收集整理的玩转Eclipse — 自动生成setter和getter方法的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。