要害词 JBuilderX 代码格式化 代码美化 代码模板
引言
代码编写风格主要包括变量、方法、类等语言实体的命名和代码排版布局两方面。评价代码质量的高低不仅取决于算法和数据结构,代码排版布局也是一个不可或缺的方面。随着现代软件规模的扩大,团队开发在所难免,好的代码编写风格增强了代码可读性和维护性,提高了团队协作的效率。
JBuilder被誉为java航空母舰级的开发工具,目前的最高版本是10,命名为JBuilderX。本文着重介绍如何在JBuilderX中美化代码,格式化代码排版布局,同时还将介绍JBuilderX加速代码编写的一些实用技巧。
代码美化工具
市面上已经有很多代码美化的工具软件,比较闻名的有Indent、astyle、jalopy、SourceFormatX 等,其中SourceFormatX是一个多语言的代码美化工具。但这些工具没有和开发工具很好的集成,且不易操作,功能也不够强大或不针对专门的java语言。JBuildeX集成了一个强大的代码排版布局格式化工具,在您编写好代码后,可以通过它来美化您的代码。它可以对代码做以下7个方面的格式化工作:
1) 缩进:java代码以"{}"划分的不同代码子域,里层的域比外层的域需要缩进一些,以使代码有层次感,通过该工具可以定义里层相对外层代码缩进的空格数,Tab键对应的空格数;
2) 分行:类定义、方法定义以及控制代码,如if..else, while ,try.. catch等都有对应的"{}",以组织其代码区域,您可以指定"{"和"}"是否另起一行;
3) 空格:指定在操作符、小括号"()"、中括号"[]"、分号";"等符号和操作代码之间是否需要空格;
4) 空行:答应您指定代码里哪儿需要加入空行以及空行数,使不同的代码域之间区分得更加清楚;
5) 换行对齐:指定代码行的最大列数,超过列数的代码行会被智能拆分成多行,只有包含了操作符或逗号的代码行才可以被换行。您可以指定换行点是在这些符号前面还是后面,同时,您还可以设定换行后多行的对齐方式;
6) 代码生成规则:控制自动事件句柄、变量可视域及javaBean实例化的代码生成规则;
7) import代码优化规则:控制类中import代码引入的包和类如何生成及它们排序的先后顺序,以优化import代码段。
创建java工程后,在主窗口左上角的工程面板的工程文件(xxx.jpx)上点击鼠标右键,按以下操作调出代码美化工具设置界面:
选择PRoperties->在弹出窗口左边的树中选择Fomatting,得到如图1的操作窗口界面:
图1. 代码格式化窗口
窗口的右边有7个页标签,分别对应上面所谈到的7个方面的代码设置。每一个设置页左边对应若干个设置项,右边是代码格式化的预览效果,这样您就可以即时了解设置项是如何影响代码的排版布局。下一节我将以具体的例子示范如何使用这个代码美化工具。
photoshop教程
数据结构
五笔输入法专题
QQ病毒专题
共享上网专题
Google工具和服务专题
使用代码美化工具美化代码
下面是一个简单的java类代码,其功能非常简单,是将两个双精度数按要求相加或相减,再将其结果值四舍五入为一个整数,该例子只是为了演示代码格式化,您大可不必追究代码的功能。
package format;
import java.lang.Math;
import java.util.*;
public class FormatSample {
private int i;
private int j;
public FormatSample() {}
public long add(double i,double j,boolean isAdd){
double k ;
if(isAdd){k=i+j;}
else{k=i-j;}
System.out.println("today is "+((new Date()).toString())+"the Operation of"+i+(isAdd?"+":"-"+"")+j+" equals "+k);}}
这段代码的排版布局非常差,虽然只是一小段,也会给阅读者造成晕旋效果。这一小段代码在布局上的症结可以归纳为以下几项:
1)里外层代码域处于相同列,没有用缩进形成层次布局
2) if..else的代码块的大括号"{"及"}"和代码处于同一行
3) 操作符和操作数之间没有用空格分开
4) import代码块 和 class定义以及方法和方法代码块之间没有空行分隔,挤成一团
5) System.out.println那行太长,在IDE窗口中需要移动水平滚动条才可以看到隐藏的代码
6) import 的代码行引入了过多的类,FormatSample类只需要引入java.util.Date这个类就可以了。
对以上这些排版布局缺陷进行修正我们希望得到了以下版本的的代码: