敞开生长之旅!这是我参加「日新计划 12 月更文挑战」的第5天,点击检查活动详情
默许code style比较
新建一个java文件,内容一致,然后别离运用idea与eclipse的默许code style进行格式化,格式化之后进行比较差异。
文件内容:
/**
* Description:线程Demo
*
* @Author: ShiPengYu
* @Date: 2022/10/13
*/
public class MyThread extends Thread {
public MyThread(String name) {
super(name);
}
@Override
public void run() {
super.run();
System.out.println(Thread.currentThread().getName() + ":Hello!");
}
}
在eclipse中新建一个demo项目,新建一个MyThread.java文件,将文件内容粘贴进去,然后格式化代码(快捷键ctrl+shift+F):

然后再在idea中新建一个相同内容的文件并格式化(快捷键ctrl+alt+L):

然后再在idea中点击选中文件鼠标右击挑选Compare with选项,然后在磁盘中找到eclipse中创建的文件所在位置,进行两个文件的比较。


比较结果显示(按照下图中将第三个选项调整一下,这样空格差异就能高亮,否则不方便观察):

这个现象在协同开发运用不同开发工具时,提交代码,检查代码差异的时分经常遇到,有时分分明只改了一两个地方,可是比较下来整个文件几十处差异,非常的难过!
统一code style
运用统一的代码风格标准是处理这种差异的一种好的办法,idea与eclipse都支撑自界说代码风格,所以下面运用Google的code style模板来探究处理这种差异。
Google code style 的github下载地址:
idea运用Google code style
首先去GitHub上将文件适用于idea的code style模板文件下载到本地磁盘(也能够将整个库房拉取下来)。

然后在idea中导入模板文件:

挑选方才下载的模板文件进行导入

后面的弹窗点击ok即可。
后面想要换回来能够点击这里进行切换。

eclipse运用Google code style
在GitHub库房中下载适用于eclipse code style的模板文件:

导入,然后运用并关闭。

都运用Google code style后的比较
按照上述步骤都设置好Google code style之后再次进行代码格式化,然后再次比较:

发现那种因为空格或许制表符的差异现已消失,可是!
- 在eclipse中文件结尾多了一个空行
- 在idea中类声明下面多了一个空行
起初我还认为我操作过程中不小心点击到了换行什么的,再次确认内容之后格式化,仍然是一样的作用。
至于为啥会有这种差异,暂时没有搞清楚,模板文件也看不懂。可是在issues中看到了下面这个:

大致意思便是这两个模板文件更新在4年前,实际上现已过时了。谷歌现已将其转移到了Google Java Style Guide。
那上面我去瞅了下,如同便是在描绘Java的code style因该咋咋咋的,并没有发现能直接拿来运用的模板文件。
其它的处理办法
虽然将空格以及制表符这种数量最多的差异屏蔽了,多出几行空行感觉现已友爱许多了,可是能全部统一是最好的。
阿里的Alibaba Java Coding Guidelines idea插件也是挺久没有保护了,在新版本的idea中会还报错。阿里在GitHub中关于p3c标准库房中的模板文件是根据eclipse的,并不适用于idea,至于网上说的另外一种安装一个在idea中支撑eclipse格式化的插件,然后再运用p3c标准的方式,我觉得不够好(自己也尝试过,没啥作用,就连空格制表符的问题都没能处理,原因也没去细究)。再加上看到不论是阿里的p3c仍是谷歌的styleguide库房都现已良久没有更新了,虽然代码格式标准或许十年不变也有或许,可是idea、eclipse在不断的更新,这些模板文件现在还适用不适用仍是不确定的。
看到idea能够将其导出为eclipse的模板文件,所以或许能够根据阿里的p3c也好,谷歌的也好,或许根据某个标准界说一个自己的code style,然后将其导出为eclipse或许idea的模板文件,然后由公司自己进行保护,我觉得也是比较可行的。