敞开生长之旅!这是我参加「日新计划 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):

eclipse idea统一使用Google Java code style

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

eclipse idea统一使用Google Java code style

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

eclipse idea统一使用Google Java code style

eclipse idea统一使用Google Java code style

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

eclipse idea统一使用Google Java code style

这个现象在协同开发运用不同开发工具时,提交代码,检查代码差异的时分经常遇到,有时分分明只改了一两个地方,可是比较下来整个文件几十处差异,非常的难过!

统一code style

运用统一的代码风格标准是处理这种差异的一种好的办法,idea与eclipse都支撑自界说代码风格,所以下面运用Google的code style模板来探究处理这种差异。

Google code style 的github下载地址:

idea运用Google code style

首先去GitHub上将文件适用于idea的code style模板文件下载到本地磁盘(也能够将整个库房拉取下来)。

eclipse idea统一使用Google Java code style

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

eclipse idea统一使用Google Java code style

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

eclipse idea统一使用Google Java code style

后面的弹窗点击ok即可。

后面想要换回来能够点击这里进行切换。

eclipse idea统一使用Google Java code style

eclipse运用Google code style

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

eclipse idea统一使用Google Java code style

导入,然后运用并关闭。

eclipse idea统一使用Google Java code style

都运用Google code style后的比较

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

eclipse idea统一使用Google Java code style

发现那种因为空格或许制表符的差异现已消失,可是!

  • 在eclipse中文件结尾多了一个空行
  • 在idea中类声明下面多了一个空行

起初我还认为我操作过程中不小心点击到了换行什么的,再次确认内容之后格式化,仍然是一样的作用。

至于为啥会有这种差异,暂时没有搞清楚,模板文件也看不懂。可是在issues中看到了下面这个:

eclipse idea统一使用Google Java code style

大致意思便是这两个模板文件更新在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的模板文件,然后由公司自己进行保护,我觉得也是比较可行的。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。