在处理实体类的时候,Android Studio 提供了默认的getter/setter方法。

但是在使用的过程中,调用getter比较容易出现Null的情况,容易导致NullPointerException,从而导致程序直接崩溃。所以我们可以通过getter模板的修改,如果为null的时候,我们重新生成一个对象进行返回。虽然此种解决方法理论上会造成内存的增加,但是相对于更多的if判断或程序奔溃,目前来说还是能在接受的范围内。

通过在网上查找方案,记录了Getter生成代码的模板。

首先我们新建一个实体类,在类里面写一个简单的属性,然后command+N调出Generate面板,选择Getter。

打开模板.png

然后点击添加新模板

添加新模板.png

点击OK,然后在代码生成的时候选择我们新建的模板

选择使用模板.png

然后生成的代码就有了非空判断了

非空判断.png

下面是模板的代码

#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

}

android getter不起作用,Android Studio tips2-- Getter 模板修改相关推荐

  1. android任务栈的作用,Android 启动模式以及任务栈

    1.Android 主要包含4种启动模式,下面分别介绍四种启动方式的特点: 1)tandard 默认的启动模式,标准模式 每开启一个Activity,就会在栈顶添加一个Activity实例.多次间隔或 ...

  2. android 单例的作用,Android中单例模式的几个坑

    先来看这样一个单例,稍微有点经验的同学可能都会说,这样的单例是非线程安全的.要加个volatile关键字才可以.class Singleton{        private static  Sing ...

  3. android小部件的作用,Android 应用小部件的实现

    有些时候,我们需要为自己的应用添加一个桌面小部件来显示一些简单但是关键的信息方便用户使用.应用小部件的视图是靠RemoteViews来展现的,而RemoteViews内只能放置一些简单的ViewGro ...

  4. android中uri的作用,Android UrlUri详细解析

    概述 在项目开发中,有时会遇到解析Url.Uri的需求,要从中得到链接中的相应字段.参数等.有多种实现方式,在这里总结一下应用到的. URL与URI的区别 Uri - 统一资源标志符 Url - 统一 ...

  5. android strictmode有什么作用,Android StrictMode运行流程(推荐)

    什么是 StrictMode(严苛模式) strictmode是android在 API9后引入的检测影响app运行流畅性的一种机制,例如我们都知道的主线程中不允许有网络操作这条规则就是严苛模式规则的 ...

  6. android strictmode有什么作用,Android StrictMode介绍

    今天在阅读Wordpress for android 的源代码的时候看到这个. 之前项目中未曾用过,google了一下发现很有用.写篇blog记录下./** * enables "stric ...

  7. android so文件的作用,Android SO库

    查看手机CPU架构: $adb shell $cat /proc/cpuinfo OnePlus6: AArch64 Processor rev 12 (aarch64) ➜ ~ adb shell ...

  8. android mkdirs 不起作用,Android mkdirs()创建一个零字节文件而不是文件夹

    在我的 Android应用程序中,我试图在SD卡上创建以下文件夹: /mnt/sdcard/OSGiComponents/admin/felix-cache/ 这是代码: File cacheDir ...

  9. android strictmode有什么作用,Android 性能优化 之 StrictMode

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? StrictMode概述 StrictMode 是用来检测程序中违例情况的开发者工具.使用StrictMode,系统检测 ...

最新文章

  1. ios snapkit m_如何使用自动布局和SnapKit在iOS上创建漂亮的拉伸布局
  2. ios xmlrpc
  3. Ubuntu下使用WebStorm开发nodejs(一)
  4. 自然语言处理领域的两种创新观念
  5. 连续设置多张背景图片并且平铺
  6. JQuery when
  7. 手把手教你可复用的SSO组件设计(设计篇)
  8. linux 下socket通信,client断开service退出解决办法
  9. 2021年主流CAD批量打印软件功能对比
  10. linux开发板添加qt库文件_关于QT程序下载到开发板的一些步骤总结
  11. 【MV】恋爱サーキュレーション 马琴舞蹈完整版
  12. 为效率而生-开源Mac版Google Authenticator认证客户端GoldenPasspor
  13. 中级病案信息技术计算机基础知识要点,病案信息技术职称考试基础知识复习
  14. 【Opencv】目标追踪——高斯混合模型分离算法(MOG)
  15. 高通AR 的cloud研究
  16. 了解和下载Ubuntu,及Vmware下使用Ubuntu
  17. 解决虚拟机安装系统报错解决方法
  18. 复古像素风游戏设计之:需求文档
  19. FPGA视频拼接器的放大和缩小功能
  20. 计算机开机响5声是什么问题,电脑启动报警声_戴尔电脑开机报警5声什么原因,怎么解决?...

热门文章

  1. 阿里云RPA机器人流程自动化快速入门
  2. android 生成带有系统权限的apk
  3. The Principle of Success
  4. [JAVA实战篇] AES加密的JAVA实现及AES算法讲解
  5. 正点原子LCD转接板与最小系统板的连接
  6. 2019 前端工程师修炼手册.pdf
  7. log4cplus:ERROR No appenders could be found for logger (AdSyncNamespace).
  8. HP 830 G5升级 Ubuntu 20.04 后没有声音
  9. 雷达抗有源干扰主要方法分类
  10. cmd 怎么找到文件目录路径