Java代替if和switch的方法(记录一下)
package xcc.mapTest; /**
* @Decription: 接口
* @Author:
* @Date:
* @Email:
**/
public interface Function { /**
* 要做的事情
*/
void invoke();
}
package xcc.mapTest; import java.util.Map; /**
* @Decription: 代替'if else' 和 'switch'的方法
* @Author:
* @Date:
* @Email:
**/
public class IfFunction<K> { private Map<K, Function> map; /**
* 通过map类型来保存对应的条件key和方法
*
* @param map a map
*/
public IfFunction(Map<K, Function> map) {
this.map = map;
} /**
* 添加条件
*
* @param key 需要验证的条件(key)
* @param function 要执行的方法
* @return this.
*/
public IfFunction<K> add(K key, Function function) {
this.map.put(key, function);
return this;
} /**
* 确定key是否存在,如果存在,则执行相应的方法。
*
* @param key the key need to verify
*/
public void doIf(K key) {
if (this.map.containsKey(key)) {
map.get(key).invoke();
}
} /**
* 确定key是否存在,如果存在,则执行相应的方法。
* 否则将执行默认方法
*
* @param key 需要验证的条件(key)
* @param defaultFunction 要执行的方法
*/
public void doIfWithDefault(K key, Function defaultFunction) {
if (this.map.containsKey(key)) {
map.get(key).invoke();
} else {
defaultFunction.invoke();
}
} }
package xcc.mapTest;
import java.util.HashMap;
public class Test3 {
public static void main(String[] args) {
IfFunction<String> ifFunction = new IfFunction<>(new HashMap<>(5));
//定义好要判断的条件和对应执行的方法
ifFunction.add("1", () -> System.out.println("苹果"))
.add("2", () -> System.out.println("西瓜"))
.add("3", () -> System.out.println("橙子"));
//要进入的条件
ifFunction.doIf("2");
}
}
Java代替if和switch的方法(记录一下)的更多相关文章
- java中的数学函数Math方法记录
1,三角函数与属性Math.sin() -- 返回数字的正弦值Math.cos() -- 返回数字的余弦值Math.tan() -- 返回数字的正切值Math.asin() -- 返回数字的反正弦值M ...
- Java-Runoob-高级教程-实例-方法:11. Java 实例 – enum 和 switch 语句使用
ylbtech-Java-Runoob-高级教程-实例-方法:11. Java 实例 – enum 和 switch 语句使用 1.返回顶部 1. Java 实例 - enum 和 switch 语句 ...
- Java给各个方法记录执行时间
Java给各个方法记录执行时间 long startTime = System.currentTimeMillis();...//要测试时间的方法LoggerFactory.getLogger(Bas ...
- EF里查看/修改实体的当前值、原始值和数据库值以及重写SaveChanges方法记录实体状态
本文目录 查看实体当前.原始和数据库值:DbEntityEntry 查看实体的某个属性值:GetValue<TValue>方法 拷贝DbPropertyValues到实体:ToObject ...
- Java开发WebService的几种方法--转载
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...
- Java获取随机数的几种方法
Java获取随机数的几种方法 .使用org.apache.commons.lang.RandomStringUtils.randomAlphanumeric()取数字字母随机10位; //取得一个3位 ...
- 《java从入门到精通》学习记录
目录 <Java从入门到精通>学习记录 3 基础的基础部分: 3 一. 常量与变量 3 1. 掌握: 3 (1) .常量与变量的声明方式: 3 (2) .变量的命名规则: 3 (3) .变 ...
- 关于java中的hashcode和equals方法原理
关于java中的hashcode和equals方法原理 1.介绍 java编程思想和很多资料都会对自定义javabean要求必须重写hashcode和equals方法,但并没有清晰给出为何重写此两个方 ...
- Json学习总结(1)——Java和JavaScript中使用Json方法大全
摘要:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语 ...
随机推荐
- el-table 操作列(编辑or删除) 获取本行相关数据
简单说明:开发的时候,经常会遇到表格后面跟着操作列,一般都是编辑或者删除,那么 就需要获取到 本行数据相关的id或者其他附属信息.ok,下边放代码 //vue el-table的部分代码 <el ...
- laravel 数据分页简单示例
控制器代码:只需用paginate($pageSize)方法查询数据即可 $pageSize:每页显示的记录数 public function index() { $data = Member::pa ...
- PHPExcel将Excel数据导入数据库
<?php //PHPExcel读取导入Excel数据到数据库(2003,2007通用)使用方法: //先用excel2array()方法将excel表中的数据存储到数组,在从遍历二维数组将数据 ...
- 给我半首歌的时间,给你说明白Immutable List
先看再点赞,给自己一点思考的时间,微信搜索[沉默王二]关注这个靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有一线大厂整理的面试题,以及我的系列文章. ...
- hashlib加密算法
# import hashlib # mima = hashlib.md5()#创建hash对象,md5是信息摘要算法,生成128位密文 # print(mima) # # mima.update(' ...
- 11-13 模块_collections(不太重要)&time&random&os
random:随机数模块 os:和操作系统打交道的模块 sys:和Python解释器打交道的模块 序列化模块:Python中的数据类型和str转换的模块 http://www.cnblogs.com/ ...
- PHP jdtojewish() 函数
------------恢复内容开始------------ 实例 把儒略日计数转换为犹太历法的日期: <?php$jd=jdtojewish(1789430); echo $jd;?> ...
- PHP date_date_set() 函数
------------恢复内容开始------------ 实例 返回一个新的 DateTime 对象,设置一个新的日期,然后格式化日期: <?php$date=date_create();d ...
- PHP imagealphablending - 设定图像的混色模式
imagealphablending — 设定图像的混色模式.高佣联盟 www.cgewang.com 语法 bool imagealphablending ( resource $image , b ...
- PDOStatement::errorCode
PDOStatement::errorCode — 获取跟上一次语句句柄操作相关的 SQLSTATE(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 st ...