Java source formatting

You are probably familiar with the Eclipse hotkeys to automatically format your source code:

  • Correct Indentation: Ctrl + I
  • Format: Ctrl + Shift + F

These are quite helpful and can save a great deal of time. However, with Eclipse you can take the whole idea of automatically formatting the source code to the next level.

Formatter configuration

At first, one can configure the formatting rules in Eclipse preferences > Java > Code Style > Formatter. You can create profiles and customise these to your needs:

Source formatting rules are mostly a matter of taste. I usually stick to the default profiles because that is what most Java programmers are accustomed to. Purists can also choose the pre-configured Java Code Conventions. As negligible as the exact formatting rules are, what matters is that every programmer in the project adheres to the exact same set of formatting rules. Otherwise they will re-format everybody’s code all the time. Seeing the actual changes in the code will consequently be like looking for a needle in a haystack.

So, how can one make sure that everybody uses the same formatting rules? It is easy: You can configure a project-specific formatter in the project properties under Java Code Style > Formatter:

These settings are saved in a .settings folder in the project folder. You can add this folder to your version control system to make everybody use the exact same formatter settings:

project
`-- .settings
|-- org.eclipse.core.resources.prefs
|-- org.eclipse.core.runtime.prefs
|-- org.eclipse.jdt.core.prefs
`-- org.eclipse.jdt.ui.prefs

Also, it’s highly recommended to configure the text file encoding and the line delimiter for the project under Resources. This is especially important for projects with developers using different operating systems with different default encodings. I generally recommend UTF-8 and Unix line endings, but again, that is a matter of taste. As long as everybody uses the same settings, everything will work out fine:

Save Actions

So, what’s next? It’s time for save actions! Eclipse can automatically apply source code formatting and additional code cleanups whenever you save a source file. You can activate this feature in the project properties under Java Editor > Save Actions:

This way, whenever you save a source code file the following steps are performed:

  • the code is formatted
  • imports are organized
  • the final modifier is added to fields that are only set in the constructor
  • fields that overwrite a subclass method are annotated with @Override: When a subclass changes and doesn’t offer an overwritten method anymore, you get a compiler warning. This is a highly recommended cleanup as it makes your code more robust against changes in library APIs.
  • unnecessary casts are removed

The most apparent advantage is that everything is consistently formatted. In my experience, consistent formatting makes it much easier to read existing source code.

Again, the save action configuration is saved in the .settings folder and applies to all users if you add these files in your projects version control system (you can also configure these just for your workspace in Eclipse preferences > Java > Editor > Save Actions).

Trailing whitespaces

To perfect source code formatting when it comes to versioning the files, we need to take care of one last detail: trailing whitespaces. I never cared about this until I had to merge a large amount of code for a project with many parallel branches. Here is the problem: An empty line is different from an “empty line with a tab character”. This is also true for white spaces after source lines. Especially if developers use different editors with varying policies regarding to white space handling (most indentation is automatically added while typing), this can cause a lot of trouble when merging code:

The general solution for this problem is to strip all trailing/unnecessary whitespaces. In Eclipse you can do this with the Any Edit plug-in. This removes all trailing whitespace automatically:

Summary

All this might sound negligible, however in my experience, the effort to figure this out and to properly configure it pays off perpetually whenever you write or change a line of code. Happy formatting!

本文转自:http://www.ralfebert.de/archive/java/source_formatting/

java代码格式化的更多相关文章

  1. Eclipse中设置Java代码格式化

    一.自定义 Java 代码格式化 [Java-Code-Formatting.xml 下载],下载完毕以后,打开 Eclipse 找到如下图界面,点击 Import 导入即可.

  2. Java代码格式化规范实践总结

    目标说明 统一良好的代码格式规范可以有效提升开发团队之间的「协作效率」,如果不同的开发团队或者开发人员采用不同的代码格式规范,那么每次Format代码都会导致大量的变化,在Code Review及Me ...

  3. MyEclipse配置默认自带的Java代码格式化

    1.配置注释一大段代码块后,格式化代码,已经注释的代码仍然保持原样 (1)首先,Window -> Prefrences -> Java -> Code Style -> Fo ...

  4. IDEA java 代码格式化统一

    Intellij idea 安装格式化插件 ECLIPSE CODE FORMATTER:1,安装插件:网络安装:选择Setting =>Plugins=>Browse repositor ...

  5. eclipse 4.5.2 源码修改 格式化Java代码

    注:本文代码基于eclipse4.5.2 1. 需求:在换电脑之后,如何不用配置eclipse就可以很快进入开发呢,并保持原来的编码规范. 2. 方法:修改eclipse源码 分别修改了两个jar包2 ...

  6. 转!!Java代码规范、格式化和checkstyle检查配置文档

    为便于规范各位开发人员代码.提高代码质量,研发中心需要启动代码评审机制.为了加快代码评审的速度,减少不必要的时间,可以加入一些代码评审的静态检查工具,另外需要为研发中心配置统一的编码模板和代码格式化模 ...

  7. Java代码规范、格式化和checkstyle检查配置文档

    http://www.blogjava.net/amigoxie/archive/2014/05/31/414287.html 文件下载: http://files.cnblogs.com/files ...

  8. 【Java】Eclipse代码格式化-代码模板

    Eclipse代码格式化-代码模板 eclipse 代码模板_百度搜索 编码规范系列(一):Eclipse Code Templates设置 - 青葱岁月 - ITeye博客 善用Eclipse的代码 ...

  9. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

随机推荐

  1. Android Studio 生成aar包,并在其他项目中引用

    1.新建Module 2.作为library来使用 3.在这个library写需要独立出来的东西 4.重新编译工程 5.切换到Project模式查看aar包,生成成功~ 6.引用方法,切换到Proje ...

  2. Java下List<Long>转List<String>或者List<Long>转List<Integer>

    说明:很遗憾,没有快速方法,只能遍历然后循环增加进去. 方法: for(String str : list) { int i = Integer.paseInt(str); intList.add(i ...

  3. Go beego框架使用笔记(一)

    Beego介绍 beego我认为是go初学者比较容易上手的一门MVC Web框架.简单易懂,最重要的一点就是提供了中文文档,这对于我这种英语能力比较差的人来说就是福音. beego的官网上是这么介绍b ...

  4. Word中对象显示不完整

    选中上下文字后,右键没有段落,如果是图片的话是有的,那么我们可以点击菜单栏中段落的右下三角,在那设置单倍行距.

  5. 《西安交大电路》(Principles of Electrical Circuits) 学习笔记

    内容简介:电路分析是电子类专业的第一门基础课. 电路理论包括电路分析和电路综合两大方面内容.电路分析的主要内容是指在给定电路结构.元件参数的条件下,求取由输入(激励)所产生的输出(响应):电路综合则主 ...

  6. ext js layout and tree

    数据     <configuration> <configSections> <section name="hibernate-configuration&q ...

  7. profiler

    推荐C++ 的profiler 用于GPU CPU 综合测试 FramePro http://www.puredevsoftware.com/ 可以在进度条上拉时间 查看GPU CPU bound

  8. Python图像处理(8):边缘检測

    快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 此前已经得到了单个区域植株图像,接下来似乎应该尝试对这些区域进行分类识别.通过外形和叶脉进行植物种 ...

  9. Centos下输入法全角半角转换

    写个文档 ,发现输入法的设置框没有了,打出来的字全是全角,找了半天终于发现在设置的快捷键. 废话少说,Centos的全角半角转换快捷键是shift+space. 中英文标点的转换快捷键 ctrl+.

  10. Windows下pip安装scipy报错no lapack/blas resources found

    Windows下升级了pandas,但是发现scipy包随后引用出错,后来确认需重新安装scipy, 在用pip安装scipy出现no lapack/blas resources found的错误. ...