首页 > 编程语言 >java 策略模式解决if-else ,函数式接口解决编写多个子类的问题

java 策略模式解决if-else ,函数式接口解决编写多个子类的问题

时间:2023-12-10 20:24:11浏览次数:36  
标签:map java String 子类 else typeResult return type public

/**
 * @author: szc
 * @date: 2023/9/2 22:45
 * @version: 1.0
 * @description: 从map中获取函数式接口,解决if-else 多个子类问题
 */
@Service
public class MapToInterface {

    @Autowired
    private TypeResult typeResult;

    private static Map<String, Function<String, String>> map = new HashMap<>();

    @PostConstruct
    public void init(){
        map.put("类型1", type ->typeResult.getType1(type));
        map.put("类型2", type ->typeResult.getType2());
        map.put("类型3", type ->typeResult.getType3());
    }

    public String getTypeResult(String type){
        Function<String, String> function = map.get(type);
        if(function != null){
            String result = function.apply(type);
            return result;
        }
        return null;
    }
}

@Service
class TypeResult{

    public String getType1(String type){
        return "传入的type为"+type+"获取类型1结果";
    }
    public String getType2(){
        return "获取类型2结果";
    }
    public String getType3(){
        return "获取类型3结果";
    }
}

 

标签:map,java,String,子类,else,typeResult,return,type,public
From: https://www.cnblogs.com/szc1998/p/17893162.html

相关文章

  • 常量与变量:JavaScript中的稳定与灵活
    在编程的世界里,数据的存储与操作是构建任何功能的基础。在JavaScript这门轻量级,解释型的脚本语言中,处理数据的两个基本概念是常量(Constants)和变量(Variables)。理解它们的区别与用法,对于编写高效、可维护的代码至关重要。变量:数据的灵活容器在JavaScript中,变量可以被视为数据的容器。......
  • Java并发编程的高级探索
    随着多核处理器的普及,Java并发编程变得越来越重要。为了充分利用硬件资源,开发者需要掌握并发模式和算法、锁的优化技术、并发工具的高级应用,以及并发程序的性能分析方法。并发模式和算法在并发编程中,特定的模式和算法可以帮助我们解决一些复杂的问题:生产者-消费者模式:在多线程环境......
  • Java IO流(下)
    书接上回:异常完整形态try...catch...引入finally语句块:finally里面的代码一定被执行,除非虚拟机停止。因此释放资源之类的代码非常适合写在finally语句块内。但在关闭前也要判断是否已初始化(是否为null)。importjava.io.FileInputStream;importjava.io.FileOutputStream;importj......
  • 通过宿主机查看K8S或者是容器内的Java程序的简单方法
    通过宿主机查看K8S或者是容器内的Java程序的简单方法背景最近一个项目的环境出现了cannotcreatenativeprocess的错误提示出现这个错误提示时,dockerexec或者是kubeexec进入容器/POD内部后,无法使用jstack等的命令.然后想简单查看一下问题原因都无从下手.这次......
  • Java实现对Hadoop HDFS的API操作
    1.配置Hadoop的Windows客户端Hadoop配置Windows客户端2.新建Maven项目[略]3.添加依赖<!--https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client--><dependency><groupId>org.apache.hadoop</groupId>......
  • Java开发者的Python快速实战指南:探索向量数据库之文本搜索
    前言如果说Python是跟随我的步伐学习的话,我觉得我在日常开发方面已经没有太大的问题了。然而,由于我没有Python开发经验,我思考着应该写些什么内容。我回想起学习Java时的学习路线,直接操作数据库是其中一项重要内容,无论使用哪种编程语言,与数据库的交互都是不可避免的。然而,直接操作M......
  • Java网络编程-深入理解BIO、NIO
    深入理解BIO与NIOBIOBIO为Blocked-IO(阻塞IO),在JDK1.4之前建立网络连接时,只能使用BIO使用BIO时,服务端会对客户端的每个请求都建立一个线程进行处理,客户端向服务端发送请求后,先咨询服务端是否有线程响应,如果没有就会等待或者被拒绝BIO基本使用代码:服务端:publicclassTCPServ......
  • 必知必会Java命令-jps
    你好,我是阿光。最近想着把工作中使用过的java命令都梳理一下,方便日后查阅。虽然这类文章很多,但自己梳理总结后,还是会有一些新的收获。这也是这篇笔记的由来。今天先聊聊jps命令。命令概述⭐jps命令是JDK提供的一个工具,用于查看目标系统上的Java进程基本信息(进程ID,启动类,启......
  • Java之反射(重要 · 下)
    创建对象Class类提供了一个实例方法newInstance(),通过该方法可以创建对象,使用起来比较简单。调用构造方法packagejava2023_08_10;importjava.lang.reflect.Constructor;publicclassConstructorReflect{ publicstaticvoidmain(String[]args){ //TODOAuto-genera......
  • java-打包编译常用命令
    java-打包编译常用命令 1.maven预编译(打包检查异常) 在上到测试环境或者生产环境之前,先在本地打包检查异常: mvncleaninstall-Dmaven.test.skip=true-X  2.maven打包 一般用IDEA上的maven工具按钮: 如果打包失败则可以用下面的命令: mvncleaninsta......