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语 ...
随机推荐
- HTTP request smuggling CL.TE
CL.TE 简介 前端通过Content-Length处理请求,通过反向代理或者负载均衡将请求转发到后端,后端Transfer-Encoding优先级较高,以TE处理请求造成安全问题. 检测 发送如下 ...
- vue学习(九) 使用内联样式设置style样式
/html <div id="app"> //对象就是无序键值对的集合 <h1 :style="{ color:red, 'font-weight':2 ...
- springboot(五)使用FastJson返回Json视图
FastJson简介: fastJson是阿里巴巴旗下的一个开源项目之一,顾名思义它专门用来做快速操作Json的序列化与反序列化的组件.它是目前json解析最快的开源组件没有之一!在这之前jaskJs ...
- [转]十分钟带你理解Kubernetes核心概念
本文将会简单介绍 Kubernetes的核心概念.因为这些定义可以在Kubernetes的文档中找到,所以文章也会避免用大段的枯燥的文字介绍.相反,我们会使用一些图表(其中一些是动画)和示例来解释这些 ...
- 5.pandas新增数据列
有的时候,表格自带的数据根本没有办法满足我们,我们经常会新加一列数据或者对原有的数据进行修改 还是接着上篇文章的数据进行操作 直接赋值 我想算一下每一天的温差 df.loc[:, 'wencha'] ...
- 关于RecyclerView(二)设置EmptyView
首先重写一个RecyclerView类 package com.onepilltest.others; import android.content.Context; import android.s ...
- 2-Numpy之hstack、vstack、concatenate区别
concatenate与hstack.vstack的异同点: 都表示拼接数组,concatenate可以实现hstack和vstack的功能,只需要通过调整参数axis的值即可. 其中:v表示垂直(V ...
- PHP mysqli_real_escape_string() 函数
转义字符串中的特殊字符: <?php 高佣联盟 www.cgewang.com // 假定数据库用户名:root,密码:123456,数据库:RUNOOB $con=mysqli_connect ...
- CSP-J 2019游记
准备篇 11.16早上,在南校集合后,大巴车开往日照. 在车上颓了一上午 中午到达日照,考场在山东外国语技术大学(SWUV) 到了大学里的餐厅潦草的吃完饭后去学术报告厅继续颓废 一到山外突然想起了暑假 ...
- Spring 自动装配机制
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...