四、Add Property:为Java类增加属性
许多开发者希望Java SE 7可以引入新的语言功能,其中一个希望增加的功能就是properties。如果你在Google中搜索“java 7 property”,你将会发现该话题已经被人们所广泛讨论,关于其语法形式的观点到处皆是。我们在继续等待Java SE 7的属性支持的同时,可以先来看一下Sandip V. Chitale的Add Property插件。
Add Property在CDDL许可下提供,其适用平台包括Solaris、Linux、Mac OS X和Windows。它使得向Java类增加属性非常简单。
访问该插件的详细信息页面(http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=3973),点击Download按钮,下载1198476035439_org-netbeans-modules-java-addproperty.nbm模块文件,然后安装该插件。
现在我们就可以开始使用该插件了。启动新建项目向导,创建一个名为Employee的Java应用程序项目。设定该项目的package为employee,其主类为Main。其框架代码与图3所示类似。
接下来,我们需要引入一个name属性来表示员工的姓名。选择Source>Add Property,然后在弹出的Add Property对话框的Name字段中指定名称。图4所示对话框显示了所产生的属性代码。
图4、String的默认属性类型
点击OK,在插入符位置插入代码。如果插入符位置不在一个类内,会导致代码不能编译。在这种情况下,你需要通过Edit>Undo来取消插入操作,然后重新设定插入符的位置,再次启动Add Property对话框,点击OK按钮。这个对话框会记住此前的设置。
Add Property让你可以进行广泛的定制操作。举例来说,你可以创建一个bound属性。如果你需要进行一个它所不支持的特殊定制,你需要对样本文件模板进行修改。按照以下步骤访问这个模板:
1、选择Tools>Templates。
2、在弹出的模板管理器对话框中,选择并展开org.netbeans.modules.java.addproperty模板种类文件夹。
3、在该文件夹下选择AddProperty.freemarker模板,然后点击打开按钮。
图5显示了该模板的一部分。
图5、包含特定${identifier}占位符和类似HTML的<#if>块标记的模板
从图5中可以看出,该模板中包含了不同的${identifier}占位符,其中identifier命名了一个特殊变量。每一个占位符的值被插入到生成代码中。例如,图4对话框中Type文本框中的String值将通过${type}占位符插入到生成代码中。
图5中还有不同的<#if identifier>标签,其中identifier命名了一个特定变量。变量值为布尔表达式,来决定<#if identifier>和之间的代码是否被插入到生成代码中。例如,如果static选框被选中,<#if static >static 就会插入static到生成代码中。
尽管图5所示模板非常易于理解,通过以下几个复杂的例子可以加深你的理解:
·${access}插入选定的private、protected或public单选按钮的名称到生成代码中。如果package被选中,则不执行任何插入操作。
·当Generate Javadoc选框被点击时,以下示例将插入Javadoc到生成代码中。在Javadoc内的两次出现${name},实现了对属性名称的扩展。
/**
* Get the value of ${name}
*
* @return the value of ${name}
*/
·return <#if !static >this.${name};如果static选框未被选中,插入this.前缀,后面跟着属性的名称和一个分号,到生成代码中。