玩转Eclipse — 自动代码规范化

2024-05-27 07:18

本文主要是介绍玩转Eclipse — 自动代码规范化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://www.firedragonpzy.com.cn/index.php/archives/4885?utm_source=tuicool&utm_medium=referral

大项目往往是有很多人一起完成的,然而每个人都有自己的style,导致整个项目的代码不仅存在不符合语言规范的情况,而且读起来非常困难。因此,这样的项目中都会引入Checkstyle,来规范大家的编码风格,尽量做到统一和合理。我们在代码写完之后,还要花时间去手动解决Checkstyle提示的问题,这是一个非常无聊和耗时的工作。下面介绍如何利用Eclipse配置,在我们写完代码并保存之后,Eclipse就会自动帮我们解决Checkstyle问题。

1. Formatter设置

Eclipse工具栏上选择Window -> Preferences -> Java -> Code Style -> Formatter,进入如下界面:

Active profile中显示的是当前正在使用的代码自动格式化配置。点击“Export All…”按钮可以导出Eclipse中的代码自动格式化配置,点击“Import…”按钮可以导入本地已有的配置文件,导入和导出的文件都是xml格式。可以点击“New…”按钮,在Eclipse中的一个已有配置基础上,新建一个自己的配置。

下面重点介绍如何进行代码自动格式化配置。点击“Edit…”按钮,进入如下Formatter配置界面:

上面红色框标记的选项卡中,是所有可以配置的选项。下面对每个选项卡大致可以设置的内容进行简单介绍:

 

  • Indentation缩进

 

Tab policy指定是否可以使用Tab键,有Spaces only(只支持空格键),Tabs only(只支持Tab键)和Mixed(同时支持空格键和Tab键)。为了保证代码在不同IDE和运行环境的兼容性和一致性,强烈建议选择Spaces only。Indentation size指定每次缩进多少个空格,Tab size指定一个Tab键相当于多少个空格。在Spaces only情况下,按Tab键,会自动转化成对应数量的空格。

Align fields in columns指定属性是否按列对齐。

Indent框中指定Java Code中常见元素是否缩进。

 

  • Braces大括号

 

Braces positions指定Java Code中一些元素的大括号的位置,大概有Same line(同行),Next line(下行),Next line indented(下行缩进)等选择。

 

  • White Space空格

 

控制在Declarations、Control statements、Expressions、Arrays和Parameterized types这几类元素中的相应位置插入空格。

 

  • Blank Lines空行

 

控制class文件中元素之间空行的数量,基本上采用默认值。

 

  • New Lines新行

 

控制class文件中元素是否插入新的一行。

 

  • Control Statements控制语句

 

控制像if和else,do和while,以及try、catch和finally成套的控制关键字的位置。

 

  • Line Wrapping换行

 

Maximum line width控制每行的最大字符数。

Default indentation for wrapped lines指定换行时缩进多少个空格。

还可以详细控制class各元素是否换行。

 

  • Comments注释

 

对各种注释(包括文件头注释,行注释,块注释,Javadoc注释)进行格式设置。

2. Save Actions设置

进行Formatter设置后,你就可以使用Ctrl + Shift + F或者Source -> Format格式化选择的代码。其实,还有一种更好的方法,在每次写完代码并保存class文件的时候,自动格式化该文件的代码。选择Window -> Preferences -> Java -> Editor -> Save Actions进入如下界面:

选择“Perform the selected actions on save”以及下面的三个复选框,其中“Format source code”就是根据前面设置的Formatter对Save文件中的代码进行自动格式化,可以选择仅针对修改过的代码还是针对所有代码。“Additional actions”是添加一些Save时的额外操作,可以点击“Configure…”按钮对额外操作进行设置,设置界面如下:

 

  • Code Organizing代码组织

 

可以设置删除末尾的空格,正确的缩进,以及对成员进行排序。

 

  • Code Style代码风格

 

可以设置控制语句和表达式,最重要的是还可以设置所有的parameter为final。

 

  • Member Access成员访问

 

设置是否需要this来访问非static的属性和方法,同时也可以设置static的属性和方法。

 

  • Missing Code遗漏代码

 

设置是否是否补齐遗漏的“@Override”和“@Deprecated”。

 

  • Unnecessary Code不必要代码

 

删除不必要的代码,例如:没用的import,没用的private成员,没用的local变量等。


这篇关于玩转Eclipse — 自动代码规范化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1006804

相关文章

SpringBoot中四种AOP实战应用场景及代码实现

《SpringBoot中四种AOP实战应用场景及代码实现》面向切面编程(AOP)是Spring框架的核心功能之一,它通过预编译和运行期动态代理实现程序功能的统一维护,在SpringBoot应用中,AO... 目录引言场景一:日志记录与性能监控业务需求实现方案使用示例扩展:MDC实现请求跟踪场景二:权限控制与

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、