JAVASE基础教程
——
目录
更全面、更准确的JAVASE教程
Java开发编程规约

已最新版本|V6.0
王道Java团队
COPYRIGHT ⓒ 2021. 王道版权所有

写在前面的话

>(red!)

作为一名优秀的Java程序员,不仅要写出稳定且高效能够实现功能的代码,也需要注重代码的可读性和规范性。在很多时候,这些“细枝末节”反而更能体现程序员的技术底蕴,甚至也会影响软件成果的最终交付质量!可读性差、缺乏规范的代码会严重影响程序员的技术形象,也会给自己的编程、公司代码库带来很多麻烦。所以从现在开始,就要注重代码规范,本文中提到的主要是JavaSE部分的规范。

>(green!)

以下代码规范,编程规约,按照约束力从强到弱和影响程度从严重到轻微分为:

  1. 【强制】:任何时候、任何情况下都不打折扣,必须遵守,必须执行。不遵守会严重影响代码规范
  2. 【更推荐】:一般情况下都应该遵守,是更推荐的做法。遵守会显著提升代码规范
  3. 【参考】:仅作为参考建议,不做要求

对于规约条目的延伸信息中:

  1. 【说明】对规约做了适当扩展和解释;
  2. 【正例】给出了规约中提倡的编码和实现方式的案例;
  3. 【反例】说明需要提防的雷区,以及真实的错误案例

注:本文档整体参考《阿里巴巴Java开发手册》并结合王道老师实际经验,精简整理而来,具有规范性。

命名规范

最基本要求

>(red!)

再也找不到比下面五条更基本的要求了,贯穿整个Java开发者的职业生涯,这些都一定必须要遵守!如果这些都遵守不了,立即推放弃考研吧~

>(green!)

  1. 【强制】代码中的任何命名一律不能以下划线或者美元符号开始,也不能作为结束。

    说明:Java程序员的代码中是很少见下划线和美元符号的,建议即便是命名中间也尽量不要使用

    反例_name、Student_$name、name$

 

  1. 【强制】代码中任何命名一律禁止使用拼音、或者拼音和英文混合的形式,更禁止直接使用中文。

    说明:有些拼音已经成为国际通用的除外:beijing、alibaba、baidu、taobao等

    反例:class 长方形、xuesheng [学生] 、getZuiDaZhi [最大值]

 

  1. 【强制】类、接口、注解等引用数据类型的名字一律使用大驼峰式。

    说明:本身就是缩写的词组除外:DO、UID、VO、DAO等

    正例:UserDO、Student、Test、XmlService

    反例:UserDo、student、test、XMLService

 

  1. 【强制】方法名、变量名(包括局部变量、成员变量等)都一律使用小驼峰式。

    说明:ID虽然也是缩写词组,但是很多时候大家还是喜欢将它作为一个单词用

    正例:localValue、stu、test、userId

    反例:LocalValue、Stu、Test、userID

 

  1. 【强制】包名统一使用小写,"."分隔符之间有且仅有一个自然语义的英语单词。包名一般以反写公司域名为开头,包名的单词中如有单复数的概念,统一使用单数。

    说明:在涉及公司名或特殊业务需求时,可以合理使用拼音

    正例:比如工具类的包名应为:com.cskaoyan.function.util(具体的工具类可以叫XxxUtils)

    反例:Com.test、ceshi.gongju

基本要求

>(red!)

以下要求也都是基本要求,也应当遵守。

>(green!)

  1. 【强制】在声明数组时,类型与中括号紧挨相连来表示数组,而不是将中括号放在变量名后面

    说明:不要使用C语言的方式声明数组

    正例:声明整型数组int[] arr;

    反例:声明字符串类型数组String args[];

 

  1. 【强制】不要自创缩写,不要使用有歧义的缩写,不能一眼看出原意的缩写不要使用

    反例:将“teacher”缩写成"tea",”condition“缩写”命名成 condi等

 

  1. 【更推荐】为了让代码能够直接通过类名、方法名、变量名等名称读懂,任何自定义编程元素在命名时,使用尽量完整的单词组合来表达其意,即便这会使命名很长也无所谓。

    说明:一句话,起名字的时候害怕不能“见名知意”,但就是不害怕很长的名字。

    正例:比如工具类中有多个获取最大值的方法,要通过方法名说清楚各自的区别。

    getMaxValueByArray、getMaxValueByScanner等

    反例:直接统统叫getMax、定义一个方法的局部变量叫a等

 

  1. 【强制】常量命名全部大写,单词间用下划线隔开,命名可以很长,但是不能不清不楚。

    正例:MAX_STOCK_COUNT

    反例:maxValue、MAX

  2. 【强制】在 long 或者 Long 赋值时,数值后使用大写的 L,不能是小写的 l,小写容易跟数字1混淆,可能会造成误解。

    说明:Long a = 2l; 写的是数字的 21,还是 Long 型的 2L?

特殊要求

>(red!)

在某些特殊的场景,有一些特殊的命名要求。虽然不强制要求,但是可以作为参考。

>(green!)

  1. 【更推荐】抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类的命名以它要测试的类的名称开始,以 Test 结尾;接口的实现类的命名可以用接口的名字加上后缀"impl",也可以加上前缀以示说明。

    正例:AbstractPerson、StudentDaoImpl

 

  1. 【更推荐】布尔类型的变量,一律禁止使用is前缀的形式,否则会引起某些框架的解析错误

    说明:对于成员变量isMale而言,它的get方法也会写成isMale()。对于某些RPC框架而言,会将该属性误解析为male而获取不到,这样就会抛出异常。

    反例:最典型的就是定义性别时,使用“isMale”或者“isFemale”

注释规范

>(red!)

注释的使用在Java中是十分重要的,在公司中写好注释,可以给人留下极好的映像。当然不好的注释,会让人背后偷偷骂你(xiao

>(green!)

  1. 【更推荐】单行注释的双斜线与注释内容之间有且仅有一个空格。

    说明:阿里巴巴的规范中,单行注释要求双斜线后面必须有且仅有一个空格。坊间传闻这是阿里的脚本检查代码格式时的要求,应该不太具有实际意义。实测下来,双斜线后加一个空格,注释的阅读性会更好,大家可以模仿一下。

    单行注释正例
  2. 【更推荐】所有的类都必须添加创建者和创建日期,也要指明该类的大致设计思路和用途。

  3. 【更推荐】属性和方法如有必要添加注释,必须使用 Javadoc 规范,即使用文档注释/** 内容 */的形式,禁止使用单行/多行注释的形式。

    说明:在 IDE 编辑窗口中,Javadoc 方式会提示相关注释,生成 Javadoc 可以正确输出相应注释;在 IDE 中,工程调用方法时,不进入方法即可悬浮提示方法、参数、返回值的意义,提高

    阅读效率。

    说明:关于文档注释的具体格式会在文档最后详细说明,请查看完规范再翻看。

  4. 【强制】方法内部如有说明注释的需求,请使用单行或者多行注释, 放在在被注释语句的上面而不是下面。

    说明:注释语句注意与代码对齐。

最后关于注释的书写,提几点规范的要求:

  1. 注释力求写得清楚明白,某些专有名词使用英文,正常的注释文字还是用中文写更好。

  2. 解释代码有两个极端,一个是完全不写注释,另一个是写一大堆啰嗦的注释。实际上合理命名,结构标准的代码是可以自解释的,所以没有必要把注释写得特别详细以至于啰嗦,只需要关键位置说明就足够了。

  3. 代码中的注释是给自己看的,有注释的代码,即使隔很长时间,也能清晰理解当时的思路;注释也是给继任者看的,使其能够快速接替自己的工作。所以写注释有两个要求:

    1. 第一:能够准确反应设计思想和代码逻辑;
    2. 第二:能够描述业务含义,使别的程序员能够迅速了解到代码背后的信息。
  4. 代码如果修改了,不要忘记修改相关的注释。 一条路正在维修而导航软件不提示,那就直接掉坑了。

编码规范

>(red!)

以下规范,请根据自己的学习进度进行了解,如果看不懂可能是是还没有学到相关的内容。

变量的使用

>(green!)

  1. 【强制】禁止在代码中使用任何魔法值,变量都应该预先定义再使用。

    说明:所谓魔法值,是指在代码中直接出现的数值(尤其是字面值),离开这段代码完全不知道它的含义。

    比如下列代码:

    使用魔法值举例

    代码中使用了字面值“20”,试想一下如果数组的声明和数组的遍历代码相距较远,就很难明白“20”的具体含义了。这个“20”实际上就是一个魔法值,使用魔法值会严重影响代码可读性,应该避免在程序中使用魔法值。

    上述代码可改成:

    去除魔法值的代码
  2. 【强制】严禁在一行声明定义多个变量,尤其是类型混合定义。

    正例

    禁止一行定义多个变量正例

    反例

    禁止一行定义多个变量反例

    说明:一行定义多个变量,看起来代码更短了,但实际上这是没必要的(多写一行不要钱)而且对于开发和维护来说,也属于制造麻烦。

 

  1. 【更推荐】在方法体中定义局部变量时, 要在使用的时候定义,而不是一股脑先定义再隔很长代码使用。

    说明:有些程序员在写方法时,喜欢上来先把自己需要的局部变量定义好,等使用它们时可能已经隔了n行代码。这种做法,一方面导致后面可能忘记定义而重复定义变量,定义死变量;另一方面局部变量的定义和使用间隔过远,也不利于理解局部变量的含义。在JDK源码或者框架源码中,可以看到都是在需要使用变量的时候创建,或者在需要使用的前几行代码申明再去创建。

    正例

    局部变量使用正例

    反例

    局部变量使用反例

 

代码格式

>(green!)

  1. 【强制】任何二元、三目运算符的左右两边都应该加上空格,禁止直接连接变量。

    说明:元、目指的是操作数。常见的二元运算符如赋值运算符、算术运算符、逻辑运算符等

    正例:int a = 10;

    反例:int a=10;

 

  1. 【强制】方法的参数在定义和传入时,多个参数逗号后边必须加空格,但是逗号前面不要加空格。

    正例:method(args1, args2, args3)

 

  1. 【强制】大括号的使用约定。

    • 如果是大括号内为空,则简洁地写成{}即可,不需要换行;

    • 如果是非空代码块则:

      • 左大括号前不换行。
      • 左大括号后换行。
      • 右大括号前换行。
      • 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。

 

  1. 【强制】左小括号和字符之间不出现空格,右小括号和字符之间也不出现空格,而左大括号前需要空格。

 

  1. 【强制】if/for/while/switch/do 等保留字与括号之间都必须加空格。

说明:以上五点,是必须要遵守的,这样的代码才能看起来更清爽,不会看起来很臃肿。当然你可能会觉得很烦,实际上在IDEA中编程,只需要使用快捷键 Clt + Alt + L 就可以自动格式化上述格式。建议编码时,写一段就按一下该快捷键格式化代码。

 

  1. 在 if/else/for/while/do 语句中必须使用大括号。即使只有一行代码,也要尽量避免采用下面的单行的编码方式:

    说明:在相当多的规范中,都严格禁止写这些结构时省略大括号。拿if举例,原因在于一旦大括号省略,程序员很容易忘记此时if仅能够使一行代码生效,从第二行开始的代码无论if选择结果是什么都会被执行,从而导致程序出现异常甚至严重bug,感兴趣的可以去搜一下iOS的“GoTo Fail 漏洞”。

 

  1. 【更推荐】单个方法的总行数不超过 80 行。(这是阿里对公司内员工的要求,但不同的公司可能要求不同,总之一个方法不要过长)

    说明:包括方法签名、结束右大括号、方法内代码、注释、空行、回车及任何不可见字符的总行数不超过 80 行。

    正例代码逻辑中要理清主干和分支,个性和共性。分支逻辑提取出来作为额外的方法,使主干逻辑更加清晰。 共性逻辑也是一样抽取出共性方法,便于复用和维护代码。

OOP规范

>(green!)

主要针对面向对象编程过程中,需要遵循的一些规范:

  1. 【强制】静态成员严禁使用对象引用访问,必须使用类名去访问。

 

  1. 【强制】只要是覆盖、重写自父类或接口的方法,必须使用 @Override 注解。

    说明:该注解可以检查方法是否是重写自父类,避免错误的重写!

 

  1. 【强制】不要使用过时的类和方法,即被@Deprecated注解修饰的类和方法

 

  1. 【强制】 接口中定义的方法和属性禁止添加任何修饰符,一般来说不要接口中定义常量和实现方法

    说明:接口中如果想要定义常量,肯定是与接口方法相关且是整个接口子类都会使用的基础常量。Java8之后接口允许定义default和static实现方法,但一般情况下都不建议定义,除非是对是对所有实现类都有价值的默认实现。

    正例:接口方法签名 void methodName();

    反例:接口方法签名 public abstract void methodName();

 

  1. 【强制】Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals。

    正例:"test".equals(object);

    反例:object.equals("test");

    说明:如果是两个引用判断对象相等,推荐使用 java.util.Objects下的 equals 方法(JDK7 引入的工具类)

 

  1. 【强制】包装类型对象之间比较值的大小,一律使用equals,禁止使用“==”

    说明:在-128 至 127 范围内的赋值,Integer 对象是在IntegerCache.cache 产生,会复用已有对象。

    这个区间内的 Integer 值可以直接使用 “==” 进行比较值大小。

    但是这个区间之外的所有数值包装类对象,都会在堆上产生,并不会复用已有对象,这是一个大坑。

    建议都使用 equals 方法来比较值大小,避免考虑取值范围的问题~

 

  1. 在定义类的成员时:

    • 【强制】先定义成员变量,再定义构造方法,成员方法放在最后面

    • 【更推荐】在成员变量、构造方法和成员方法的各自区域内,成员的定义顺序是:

      • 先定义公有成员,而后是受保护成员,私有成员放在最后面

      说明:公有成员是需要提供外部使用的成员,是最受关注的,放在最上面展示最好。受保护成员虽然只对子类开放,但也是关键成员需要被外部访问,放在public下面最好。最后面放私有成员,因为外部一般不需要特别关注私有成员,那就藏到最后面吧。

    • 【更推荐】接上一条,在定义方法时,如果类中有多个构造方法、多个同名成员方法,那些这些方法应该按照顺序放在一起,以方便阅读。

    • 【参考】类中如果有getter/setter方法,因为它们一般都是给框架自动调用的,格式也是固定的,价值是比较小的,可以放在类体的最后面。

 

  1. 在给类的成员设置访问权限的时候,应该从严(尽量设置private):

    • 【强制】如果不允许外部直接通过new创建对象,必须私有化构造方法,也不允许有默认构造方法。

      说明:典型的像工具类中,工厂设计模式中

    • 【强制】类成员方法只在类内部使用时,必须私有化。

      说明:中间方法私有化

    • 【更推荐】其余成员变量,静态成员变量,方法只要能够确定不会在类外部使用,一律设置为private。普通成员如有子类使用的需求,设置为protected。静态成员变量还最好考虑能不能设置为final

    说明:设置权限时要尽量“吝啬”,能不给的权限就不给,能私有化就私有化。某个结构,它的权限越小,修改起来就越容易。比如一个私有的方法,删了就删了,最多对类的内部造成一些影响,排查起来很容易。但如果是一个public方法,我想你动它的时候心里也要三思吧~

 

  1. 【更推荐】一个方法只需要做它应该做的事情,不要为了偷懒让它“身兼多职”。

    具体来说:

    • 构造方法就是初始化对象、完成类的成员变量赋值,不要在里面加入业务逻辑代码。如果初始化对象依赖于复杂的业务逻辑,必须将业务代码放入init方法,从而达到复用代码,优化代码逻辑的目的
    • toString方法直接用idea自带模板生成,不要加入其它业务逻辑
    • getter/setter方法同样idea自动生成,不要加入其它业务逻辑
    • 其它方法也是一样,遵循“专人专用”的原则,一个方法只需要完成它需要完成的功能即可,不要冗余。

附:使用IDEA模板统一代码格式

>(red!)

说明:上面文档中提到了代码格式规范,如果一一记忆难免过于复杂,这里推荐大家配置代码模板,然后使用快捷键统一格式。 大家可以根据实际情况酌情使用~

准备工作

>(green!)

开发工具:IDEA 2018.3

格式模板:阿里巴巴代码格式模板

格式化代码快捷键:Ctrl + Alt + L(IDEA win平台,mac自行查阅)

下载代码模板

>(green!)

阿里巴巴代码模板下载地址: https://github.com/alibaba/p3c/tree/master/p3c-formatter

注意使用其中的 eclipse-codestyle.xml 作为代码模板~

如果不会使用Git下载,可以使用百度云盘:

链接:https://pan.baidu.com/s/1ugU2zedUXcrV2_EEP5QdRw 提取码:6csk

配置流程

请按照下文步骤操作(以IDEA 2018.3为例,其它版本大同小异)

安装插件

>(green!)

IDEA自身是没有代码模板导入选项的,阿里巴巴提供的代码格式化配置也是基于eclipse的。所以如需在IDEA中使用此配置,需要安装对应的eclipse插件—— Eclipse Code Formatter

打开 File -> Settings -> Plugins -> 在 Marketplace 中搜索 Eclipse Code Formatter 安装搜索结果的第一个插件,如图:

idea安装eclipse模板插件

安装插件后,会要求重启IDEA,重启即可完成安装。

注:某些情况下会出现不能连接插件商城网络的情况,请多尝试几次,实在不行就换一个网络环境,比如开个手机热点试一试。

>(red!)

2021年/11月16日更新

Eclipse Code Formatter 这款插件在11月初的时候,大版本更新了一次。原作者放弃了该插件对2020版本以下的IDEA的支持,所以大家在IDEA 2018自带的插件市场,包括JetBrains官网上可能都已经找不到该插件的2018版本了。这里提供备用的安装方式,即安装包安装。百度云下载链接如下:(安装方式也附有说明)

链接:https://pan.baidu.com/s/1ugU2zedUXcrV2_EEP5QdRw 提取码:6csk


如果仍然存在其它问题,可联系老师解决~

配置插件

>(green!)

打开 File -> Settings -> Other Settings -> Eclipse Code Formatter 进行IDEA代码格式配置,将代码格式化文件eclipse-codestyle.xml,配置到插件中,如下图所示:

配置eclipse模板插件

几个注意事项:

  1. 建议在IDEA本地安装文件中,创建一个单独的文件夹(比如叫 format ),然后将配置文件放进去。不要乱扔配置文件,导致后期模板失效。
  2. 按照图片中标记的位置进行修改,其余地方保持默认即可。
  3. 具体是否使用模板请根据公司的要求来决定,不需要刻意去模仿。
  4. 为了使设置对新创建的工程依赖生效,需要打开 File -> Settings -> Other Settings -> Settings for New Projects -> Other Settings -> Eclipse Code Formatter 重复一遍上述设置。

使用说明

>(green!)

代码模板安装配置好后,使用起来就十分容易了:直接在代码文件中按快捷键 Ctrl + Alt + L 即可!具体的使用效果大家可以自行摸索一下,注意之前的老代码不会因为配置模板而直接更改格式,需要自行格式化。

注:这里希望大家在使用IDEA写代码时,能够养成两个非常好的习惯:

  1. 写几行代码按一下 Ctrl + S 保存代码文件~
  2. 写几行代码按一下 Ctrl + Alt + L 格式化代码~

附:使用IDEA模板统一注释格式

>(red!)

说明:

上面文档中提到了注释规范,如果全部依赖手打还是有些麻烦的,这里推荐大家配置注释模板,然后快速生成注释模板。

准备工具

>(green!)

开发工具:IDEA 2018.3

注释样式:

  1. 类注释格式样式,要求给出作者和创建时间、以及必要的解释说明。一个具体的案例如下:

    IDEA类注释样式

    说明:

    1. @authorJavadoc规范中的标签,表示代码的创作者。作者的名字可以写自己的本名、花名也可以写自己公司的内部邮箱地址,根据需要自行填写即可,一般只要能够让别人知道代码是谁写的就可以了。(方便沟通)

    2. Javadoc规范中并没有明确和日期相关的标签。有些程序员会选择自创标签比如 @date / @create等。这样的做法并不是错误的,很多公司也会采取这种做法(比如我之前的公司用的是@date

      但是本着教学严谨规范的态度,Javadoc规范中既然没有相关标签,那我们也不要自创标签。

      Javadoc规范中,有一个@since标签,它用来表示当前代码第一次出现的(JDK)版本号,这里我们拿来表示日期。

      注:从实际开发角度来说,如果公司的代码没有生成Javadoc文档的刚需(实际上有这种刚需的公司非常少),自创标签是完全可以的。

  2. 属性(成员变量)一般比较少写注释,也没有较为固定的格式。自行用单行注释或者文档注释即可。

  3. 方法注释格式,要求给出作者、创建时间、方法的参数、方法的返回值以及抛出的异常等。如果是抽象方法,也需要说明子类的情况。具体写什么,可以根据方法的情况增删。比如无参方法就不需要指出参数,void方法也不需要指出返回值。

    一个具体的案例如下:

    IDEA方法注释样式

    说明:

    1. @param@return 也是Javadoc规范中的标签,分别表示方法的参数(parameter)和返回值。
    2. @throws@exception 也是Javadoc规范中的标签,官方指出它们的语义是一致的或等价的,都是表示方法中的异常。根据实际使用中的情况来看,建议 @throws 后面跟编译时异常,@exception 后跟方法中抛出的运行时异常。
    3. 根据方法的实际情况,标签可能会有增减,具体情况具体对待。

最后,需要说明的是:

  1. 不同公司规范可能不同,这里给出的是符合 Javadoc规范 的注释格式,实际开发以公司标准为基准。
  2. 这里给出的是注释的样式,模板配置中要填写模板代码,模板代码配置参见下面。

配置模板

>(red!)

请按照以下步骤完成模板的配置,相关的使用也会在文档中详细说明。(以IDEA 2018.3为例,其它版本大同小异)

配置全局中USER

>(green!)

说明:可以在IDEA全局配置一个USER属性,用于填充自动生成的注释中的作者 @author 标签。

打开IDEA中上方的 Help -> Edit Custom VM Options -> 在打开的配置文件的最下方中,新增以下代码:

-Duser.name=xxx

其中 "xxx" 请填上自己的名字~(随意,公司中大多会填自己的邮箱)

配置类注释模板

>(green!)

打开IDEA左上方的 File -> settings -> Editor -> File and Code Templates -> files -> class ,然后将以下模板代码粘贴进去:

IDEA类注释模板

添加idea类注释模板

配置完成后,这时新建class时,会提示输入类描述description,可以自己新建一个类,尝试一下即可明白~

配置方法注释模板

>(green!)

打开IDEA左上方的 File -> settings -> Editor -> Live Template配置方法注释模板的过程比较复杂,请严格按照步骤操作:

idea配置方法注释模板

按照图中的序号,操作步骤为:

  1. 点击 标号1 图中的加号,然后首先新建一个组(Group),然后在组中新建模板(Live Template),名字可以自己取一个。例如图中我的组叫 我的method模板 ,下面勾选的就是一个模板。

  2. 接下来修改模板的具体内容,标号3位置的是缩写(abbreviation)它的作用是在代码中敲出该缩写,加上序号4指定的快捷键(默认是Tab键)就可以生成 序号5 中的模板代码。

    注:如果你完全按照我图中的样式配置,需要在方法头的上面,敲"/**",然后按Tab键,即可自动生成该方法的注释。

  3. 标号5中的模板如下,直接复制粘贴即可。

    IDEA方法注释模板

    注意:方法中的注解,泛型,异常等如果需要注释,自行添加标签即可。(可以百度搜一下这些标签怎么加,这里不再细表)

  4. 你可以已经注意到了,模板中有很多"$"符号包裹的字符串,这是模板变量,需要明确给这些变量进行赋值。点击 标号6 的按钮开始给这些变量赋值。如下图所示:

    配置模板变量

    各个变量的取值如下, 建议将内容直接复制粘贴进去即可。

    1. date:

      注:格式同日期格式化类(DateFormat),y表示年,M表示月,d表示天

    2. time:

    3. param:

      方法参数模板变量

      注:不要管,直接复制粘贴进去就可以了。

    4. return:

    5. USER:

    最后,后面选项中的对号,建议按照上图勾选,然后点击OK完成配置。

  5. 上述步骤都完成后,还需要配置模板生效的范围 ,如下图:

    IDEA添加方法注释模板

    点击 Define 按钮后,勾选其中的Java即可让脚本在Java代码中生效。

  6. 上述步骤完成,就可以根据 缩写 + 触发键 在Java代码中生成方法注释了。 注意一定要在方法声明的上一行写这个方法的注释,不要写在方法体中或者方法的下面。 如果是一个抽象方法,则需要手动修改参数和返回值。如果方法还有诸如异常,注解等需要说明的,自行添加,模板中就不写它们了,毕竟不是很常见。以上,完成模板配置,大家可以自行测试一下!

The End

如有发现错误,欢迎联系老师更新!