Getter 模板修改--自动处理 null 判断, 格式化代码自动整理方法位置

23人阅读 评论(0) 收藏 举报
分类:


Getter模板修改教程


随便建个类,写几个属性,然后按快捷键 Alt + Insert 或在代码区域 右键 -> Generate -> Getter,然后会有一个弹框:


此时先不要点击 OK 键,先点击右上角的 … 的图标,来修改模板文件:



此时只有一份 AS 默认的生成 Getter 方法的模板,要对这份模板进行修改,所以接下去可以选择新建一份新的模板文件或者在原文件上修改都可以,比如我新建了一份 NotNull_getter 模板文件:



模板文件需要修改的地方就仅仅是在$(name){…} 代码块里的 return 生成规则,原本规则是统一返回字段值本身,根据规范新增两条规则:增加 String 类型和 List 类型的生成规则。以下是修改后的整个模板文件代码,可以拷贝过去直接使用:

#if($field.modifierStatic)
static ##
#end
$field.type ##
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))
#if ($field.boolean && $field.primitive)
 #if ($StringUtil.startsWithIgnoreCase($name, 'is'))
   #set($name = $StringUtil.decapitalize($name))
 #else
   is##
#end
#else
 get##
#end
${name}() {
 #if ($field.string)
    return $field.name == null ? "" : $field.name;
 #else
   #if ($field.list)
   if ($field.name == null) {
       return new ArrayList<>();
   }
   return $field.name;
   #else
   return $field.name;
   #end
 #end
}



格式化代码自动整理方法位置教程


先开启自动整理方法位置的功能,位置:
File -> Settings -> Editor -> Code Style -> Java -> Arrangement



如上图的 2,3 点功能,默认都是关闭的。


第 2 点功能:Keep overridden methods together – keep order


意思是将由 override 标志的方法都集中放置,建议将此功能开启,override 的方法通常要么是系统的一些回调方法,要么是我们自己定义的一些接口,这部分方法本身就有一定的关联性,集中在一起很合理。


注意,AS支持两种规则,一种是 keep order(按原有顺序),一种是 order by name(按照方法字母表顺序)。至于哪一种较合适,个人喜好,我是选择的 keep order。


第3点功能:Keep dependent methods together


意思是将相关的方法按照某则规则放在一起,AS支持两种规则:

breadth-first order & depth-first order

我的理解,说得通俗点也就是广度优先和深度优先,这个功能建议开启。


举个例子,假设一个类里有这么几个方法,a 调用了 b, c, d, 而 b 调用了 e, f,如果是按照广度优先来整理这些方法的位置时,breadth-first order:


广度优先


广度优先整理后的方法顺序:a, b, c, d, e, f。也就是说,方法 a 里面调用了三个方法,那么优先将这三个方法摆放在方法 a 下方,此时并不去考虑这三个方法里是否还调用了其他方法。等过完方法 a,那么以同样的道理再去整理方法 b 中调用的方法的位置。


但如果是深度优先,那么整理后的方法顺序就不同了,如下,depth-first order:


深度优先


深度优先整理后的方法顺序:a, b, e, f, c, d。也就是说,方法 a 内调用了三个方法,第一个方法是 b, 然后方法 b 又调用了 e, f。所以方法 b 紧接着 a 方法下面摆放,方法 e, f 紧接着方法 b 下面摆放,直到 e, f 里都没有其他方法了。然后再重新回到方法 a 内继续往下过方法 c 的位置,以此类推。


两种规则有各自的好处,广度优先侧重于优先梳理每个方法的大体工作;而深度优先则侧重于梳理每个方法的实现细节,流程步骤;


目前我是选择广度优先,因为我更侧重于关注每个方法大体的工作,对于一个不熟悉的方法,大概过一下它里面的每个方法大体上做了什么,就能大概理解这个方法的大体工作。


以上仅仅只是开启功能而已,而要借助 Android Studio 来自动整理方法位置,就是通过 AS 的格式化代码功能,快捷键也就是 Ctrl + Alt + L 。但这个格式化操作默认是没有启动对方法进行整理的操作的,每次按完快捷键后会有如下提示:


重点在底部那行灰色的字体,通过快捷键 Ctrl + Alt + Shift + L 可以打开配置 dialog:



Rearrange code 默认是没有勾选的,所以想要启用整理方法的功能,需要将这个勾选上,以后在通过 Ctrl + Alt + L 来格式化代码时,AS 就会根据我们在第一个步骤中设定的规则来自动整理方法的位置。



查看评论

AndroidStudio Getter方法自动判null模板+方法自动排序

Getter 模板修改--自动处理 null 判断添加模板方法随便建个类,写几个属性,然后按快捷键 Alt + Insert 或在代码区域 右键 -&amp;gt; Generate -&amp;gt...
  • t_an123
  • t_an123
  • 2018-04-08 09:52:06
  • 88

vim自动格式化代码

1.在vim中可以用‘=’来格式化代码具体操作如下: == 格式化当前行 gg=G 格式化整个文档 #= 格式当前行及接下来的#行代码,例如“2=” 格式化当前行及接下来的2行 2.用vim格式化...
  • zhanlovepei
  • zhanlovepei
  • 2015-03-24 11:03:16
  • 2632

as 整理代码快捷键

马丹,挺好用的,就是记不住,好气Ctrl + alt + L
  • u011033906
  • u011033906
  • 2017-02-10 22:20:07
  • 959

phpStorm格式化代码快捷键

Ctrl+Alt+L
  • daijiguo
  • daijiguo
  • 2016-01-22 15:09:50
  • 42061

MyEclipse和Eclipse中jsp、html格式化自动排版问题

一、myeclipse的漂亮排版设置 步骤: 在左侧快捷 “搜索” 框里面输入 html 。 点击选中左侧HTML Source 。 line - width 是设置当前行里面有多少字符时,就换行。...
  • u010948547
  • u010948547
  • 2015-10-22 16:35:33
  • 8688

最全Pycharm教程(15)——Pycharm编辑器功能之自动生成格式

最全Pycharm教程(1)——定制外观   最全Pycharm教程(2)——代码风格   最全Pycharm教程(3)——代码的调试、运行   最全Pycharm教程(4)——有关Python...
  • u013088062
  • u013088062
  • 2015-12-10 16:02:13
  • 21872

Zend Studio 保存 自动格式化代码

依次点击Window->Preferences->PHP->Editor->Save Actions,在Save Actions界面中 勾选复选框Format source code。Apply后试试...
  • yukun314
  • yukun314
  • 2016-10-06 14:35:09
  • 2223

MyEclipse 自动调整代码书写格式XML formatter-profile.xml

  • 2012年02月17日 15:39
  • 28KB
  • 下载

visual studio 利用快捷键自动整理代码

Ctrl + K ,  Ctrl + D.  自动整理代码
  • Hamber_Bao
  • Hamber_Bao
  • 2016-05-04 23:42:44
  • 5148

在VS2005中进行代码格式化

编辑-高级-设置选定内容的格式 快捷键:Ctrl+K, Ctrl+F
  • skywalker_leo
  • skywalker_leo
  • 2012-10-26 11:25:58
  • 907
    个人资料
    持之以恒
    等级:
    访问量: 4251
    积分: 528
    排名: 9万+