万能的Entry,两个变量的Model/JavaBean再也不用写了!
2019独角兽企业重金招聘Python工程师标准>>>
前言
很多时候传数据需要只含两个变量的Model/JavaBean,但就为了两个变量去写一个Model/JavaBean实在是麻烦,而且类型固定重用性低。比如:
1.网格显示的头像-名称 需要 String-String类型的一个GridBean
2.日期选择器的Item 需要Boolean-String类型的一个GridPickerItemBean
3.Http请求类参数 需要String-Object类型的一个Parameter
。。。
有什么方法可以不用写一大堆这样的自定义Model/JavaBean吗?
用Map<K, V> 或Set<T> ?
很多地方(比如Adapter中的数据列表)都要求序列化,而Map(包括LinkedHashMap) 和 Set(包括LinkedHashSet)都没有get(int index)方法,不能满足需求。
大家知道,List支持序列化,有get(int index)方法,加上Entry<K, V>里面的K, V都是自定义类型,所以用List<Entry<K, V>>既支持序列化,又能储存两个任意类型变量。
用SDK里的Entry?
SDK内提供了3种Entry
DropBoxManager.Entry只有这几种Constructor,明显不能满足需求
KeyStrore.Entry不能存取数据,明显不能满足需求
Map.Entry只有一个构造器,且必须在构造时实现里面几个抽象方法,使用太麻烦,还不能setKey
所以我写了一个Entry<K, V>来解决以上问题。
ZBLibrary万能Entry<K, V> 使用方法
只需要修改Entry<K, V>中的 K 和 V 为任何你需要的类型,其它和普通的Model/JavaBean一样。
以上面3个Model/JavaBean使用场景为例:
先将Entry<K, V>放到工程中,然后
删除GridBean,其它类中的GridBean全部改为Entry<String, String>
删除GridPickerItemBean,其它类中的GridPickerItemBean全部改为Entry<Boolean, String>
删除Parameter,其它类中的Parameter全部改为Entry<String, Object>
如果不想删除原来的Model/JavaBean,还可以通过继承Entry<K, V>来简化原来的Model/JavaBean:
GridBean extends Entry<String, String>
GridPickerItemBean extends Entry<Boolean, String>
Parameter extends Entry<String, Object>
Entry<K, V>下载地址(欢迎Star,欢迎Fork)
https://github.com/TommyLemon/Android-ZBLibrary/blob/master/ZBLibrary(ADT)/ZBLibrary/src/zuo/biao/library/bean/Entry.java
转载于:https://my.oschina.net/tommylemon/blog/671895
万能的Entry,两个变量的Model/JavaBean再也不用写了!相关推荐
- 【C语言刷题】交换两个变量(包含不创建临时变量)的解法
目录 一.常规方法(引入空瓶变量) 二.题目要求,不允许创建临时变量 2.1 通过两数加法实现交换 2.2 按位异或操作符实现交换 题目:写代码实现两个变量的交换.(不允许创建临时变量) 一.常规方法 ...
- python使用matplotlib可视化、使用xcorr函数可视化两个变量的互相关图、使用acorr函数可视化自相关图像
python使用matplotlib可视化.使用xcorr函数可视化两个变量的互相关图.使用acorr函数可视化自相关图像 目录
- R创建两个变量的直方图
R创建两个变量的直方图 直方图是可视化给定变量值分布的有效方法. 要为R中的一个变量创建直方图,可以使用hist()函数.要为R中的两个变量创建直方图,可以使用以下语法: hist(variable1 ...
- java判断两个int相等_Java 判断两个变量是否相等
判断两个变量是否相等的方式有两种:利用运算符 == 利用equals方法 (1)比较基本Java基本数据类型 比较基本数据类型,只能用"==",不能用equals,这里比较的是两个 ...
- 两个变量交换值 和按位异或的理解
2019独角兽企业重金招聘Python工程师标准>>> 第一种方法:大家会借助第三个变量来实现: 如:tmp=A;A=B;B=tmp; 这种方法需要借助第三变量来实现: 第二种方法: ...
- JavaScript两个变量交换值(不使用临时变量)
概要 本文主要描述,如何不使用中间值,将两个变量的值进行交换. 前三种只适用于number类型的数值交换,第四和第五种适合其他类型. 一.普通做法 var a = 1,b = 2,tmp;tmp = ...
- 互换两个变量,不使用中间变量
第一种方法: a=a+b; b=a-b; a=a-b; 代码如下: #include "stdio.h" int main(void) {int a,b;printf(&quo ...
- 不用临时变量,交换两个变量的值
不用临时变量,交换两个变量的值 a=a^b; b=a^b; a=a^b; 或者 a=a+b; b=a-b; a=a-b;
- 用异或来交换两个变量能提快速度是错误的
在进行两个变量的时候,常常会看到有些书误人子弟的推荐使用异或的方式: 方式一 { x = x ^ y; y = x ^ y; x = x ^ y; } 而不是採用暂时变量实现交换: 方式二 { i ...
最新文章
- java paintComponent的一些解读
- Struts2增删改查 myeclipse开发文档加项目源码及eclipse开发项目源码
- 第三十三章 机械化印刷
- 高级语言程序设计II 实验报告三c++使用文本文件和二进制文件的读写比较两者的区别和优劣...
- 一些JavaScript题目
- zabbix添加表达式
- 【渝粤教育】国家开放大学2018年秋季 0716-21T工程建设法规 参考试题
- 图论之单源最短路径问题
- 微信公众号H5页面:禁止分享操作
- 思科为计算机配置ip命令,思科路由器配置IP方法
- 两台电脑之间使用ntp做时间同步的总结
- html图片的隐藏与显示,Jquery中使用show()与hide()方法动画显示和隐藏图片
- C#查询自己的公网IP接口(有服务器)
- 移动广告平台KeyMob:整合多家主流手机广告平台
- win7计算机网络连接,笔记本win7无线网络红叉电脑网络连接不可用的解决方法
- 疑因内部宫斗被离职,中兴70后程序员从公司坠楼 ​​​​
- 最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官
- 脉冲响应与频率响应的关系
- 带电检测必要性_绝缘电阻测试的重要性
- 如何修改localhost为自己指定的域名