一文教你使用stream流轻松解决java项目数据枚举显示问题

本篇文章主要讲解java枚举、vo实体类通过stream流形式输出枚举参数的方法。
日期:2024年5月26日
作者:任聪聪
本文代码实例附件:https://download.csdn.net/download/hj960511/89361611

实际效果

在这里插入图片描述

可以看到在枚举参数的基础上,我们增加了Text的显示类型。

实现思路

0.创建枚举类

package com.enumsDemo.enums;

public enum StatusEnums {
    HAPPY(0, "快乐"), 
    PLEASURE(1, "愉悦"), 
    LUCKY(2, "幸运");

    private int code;
    private String value;

    StatusEnums(int code, String value) {
        this.code = code;
        this.value = value;
    }

    public int getCode() {
        return code;
    }

    public String getValue() {
        return value;
    }

    public static StatusEnums getByCode(int code) {
        for (StatusEnums e : StatusEnums.values()) {
            if (e.getCode() == code) {
                return e;
            }
        }
        return null;
    }
}


1.创建pojo实体类,用于我们的主要数据的显示和设置

package com.enumsDemo.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {

    private String id;
    private String name;
    private String age;
    private Integer Status;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public Integer getStatus() {
        return Status;
    }

    public void setStatus(Integer status) {
        Status = status;
    }

    @Override
    public String toString() {
        return "List{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", age='" + age + '\'' +
                ", Status='" + Status + '\'' +
                '}';
    }
}


2.创建vo类

package com.enumsDemo.pojo.vo;

import com.enumsDemo.pojo.User;
import lombok.Data;

@Data
public class UserVo extends User {

    private String statusText;

    public UserVo(User user) {
        super.setStatus(user.getStatus());
        super.setId(user.getId());
        super.setName(user.getName());
        super.setAge(user.getAge());
        this.statusText = com.enumsDemo.enums.StatusEnums.getByCode(user.getStatus()).getValue();
    }
}

3.api接口处输出

package com.enumsDemo.controller;

import com.enumsDemo.pojo.User;
import com.enumsDemo.pojo.vo.UserVo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

@RestController
@RequestMapping("/api")
public class ApiController {
    //返回类型可自定义,如果自己有封装好数据格式只需要将listObjVo放入即可!
    @GetMapping("/list")
    public List<UserVo> list() {
        //模拟数据库查询出的数据类型
        List<User> listObj = new ArrayList<>();
        listObj.add(new User("1","张三","13",1));
        listObj.add(new User("2","李四","14",2));
        listObj.add(new User("3","王五","15",0));
        listObj.add(new User("4","任六","16",2));
        listObj.add(new User("5","赵七","17",1));
        //进入枚举处理逻辑
        List<UserVo> listObjVo = listObj.stream().map(UserVo::new).collect(Collectors.toList());
        //输出处理好的数据
        return listObjVo;
    }
}

注意事项

1.如复制粘贴代码实例无法执行的情况下,建议检查自己的逻辑和引入方式。
2.小白建议直接下载文章附件的代码实例进行运行和查阅代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/648125.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

这或许是国产游戏出海的最佳时机

《刺客信条&#xff1a;影》过于政治正确的选角激怒了全球玩家&#xff0c;而社交媒体上有玩家讨论育碧是否应该因为刻意加入DEI&#xff08;多元化&#xff09;而延期《刺客信条&#xff1a;影》时&#xff0c;没想到这得到了X拥有人埃隆马斯克的回复。马斯克表示“DEI&#x…

【Chrono Engine学习总结】6-创建自定义场景-6.2-chrono中的光线设置

由于Chrono的官方教程在一些细节方面解释的并不清楚&#xff0c;自己做了一些尝试&#xff0c;做学习总结。 上一篇文章中&#xff0c;自己【用sketchup重建了三维场景】&#xff0c;但导入chrono中颜色很不正确&#xff0c;几乎都是白色的&#xff0c;但也不是完全白色。经过…

宿舍管理系统代码详解(操作界面)

目录 一、前端代码 1.样式展示 2.代码详解 <1>主页面列表部分 &#xff08;1&#xff09;template部分 &#xff08;2&#xff09;script部分 <2>新增页面 &#xff08;1&#xff09;template部分 &#xff08;2&#xff09;script部分 <3>修改页面…

Mongodb介绍及springboot集成增删改查

文章目录 1. MongoDB相关概念1.1 业务应用场景1.2 MongoDB简介1.3 体系结构1.4 数据模型1.5 MongoDB的特点 2. docker安装mongodb3. springboot集成3.1 文件结构3.2 增删改查3.2.1 增加insert3.2.2 保存save3.2.3 更新update3.2.4 查询3.2.5 删除 1. MongoDB相关概念 1.1 业务…

vue3快速入门(局部使用)

目录 前置知识JavaScript-导入导出 入门操作 变量渲染页面 局部使用vue的实现步骤 vue指令 v-for v-bind v-if v-show v-on v-model 生命周期 前置知识JavaScript-导入导出 正常情况在html导入js文件是全部导入&#xff0c;这样会导致性能上的损失 。 JS提供的…

上位机图像处理和嵌入式模块部署(f103 mcu运行freertos)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 mcu一般有两个用途,一个是控制,一个是非控制。控制类的应用一般要求实时性比较高,什么时候做什么,都是有严格的时间要求的。而非控制类的应用,则要求实现尽可能多的功能,比如…

构建智慧城市公共服务系统的功能架构设计

随着城市化进程的加速&#xff0c;城市公共服务系统在保障居民生活品质、提升城市管理水平方面扮演着愈发重要的角色。构建智慧城市公共服务系统的功能架构设计至关重要&#xff0c;它不仅需要充分考虑居民需求与城市管理的实际情况&#xff0c;还需要整合先进的科技手段&#…

冷冻式压缩空气干燥机常见几种系统原理图

冷冻式压缩空气干燥机 我们以两种典型的设计流程图为例 1.干式蒸发型&#xff0c;这类冷干机是我们最为常见的设计型式。下图为deltech公司的典型流程图 此类设备各家设计不同的最大区别基本就是在换热器的结构型式上有比较大的区别。换热器主要有&#xff1a;管壳式、铝板换、…

echarts饼图图例右侧纵向排列

如图所示&#xff0c;一开始&#xff0c;我设置了图例的right和top值&#xff0c;还有orient&#xff0c;但图例始终不能纵向排成一排&#xff0c;要么上面两个一行&#xff0c;要么最后两个一行&#xff0c;最后我发现同时设置一下left的值就可以了&#xff0c;如下所示&#…

51单片机-实机演示(按键)

书接上回。http://t.csdnimg.cn/4wSSW 目录 一.按下灭&#xff0c;松开亮 二.两个按键控制两个灯 三.点一下灯开&#xff0c;在按一下关 四。优化按键消抖 1.加入bit变量 一.按下灭&#xff0c;松开亮 代码 #include <reg52.h> //此文件中定义了单片机的一些特…

关于Iterator 和ListIterator的详解

1.Iterator Iterator的定义如下&#xff1a; public interface Iterator<E> {} Iterator是一个接口&#xff0c;它是集合的迭代器。集合可以通过Iterator去遍历集合中的元素。Iterator提供的API接口如下&#xff1a; forEachRemaining(Consumer<? super E> act…

Android Studio开发之路(十三)主题影响Button颜色问题解决及button自定义样式

一、问题描述 在开发过程中发现安卓的默认主题色是紫色&#xff0c;并且会导致button也是紫色&#xff0c;有时直接在xml布局文件中直接设置button的背景色或者设置背景图片不起效果 方案一、如果是app&#xff0c;可以直接设置主题颜色 比如&#xff0c;将主题设置为白色&a…

GNSS的经纬度使用float还是doubble数据类型存储传输?

1. 背景 当你在使用导航、打车、定位等等场景下&#xff0c;一定会有形或者无形的使用位置服务&#xff0c;位置服务的基础功能功能就是向你提供位置信息&#xff0c;而经纬度是位置信息的主要信息&#xff0c;一般情况可以简单的认为位置信息就是经纬度信息。经纬度使用小数进…

五分钟”手撕“异常

目录 一、什么是异常 二、异常的体系和分类 三、异常的处理 1.抛出异常 2.异常的捕获 异常声明throws&#xff1a; try-catch处理 四、finally finally一定会被执行吗&#xff1f; 五、throw和throws区别 六、异常处理的流程 七、自定义异常 一、什么是异常 顾名…

Java顺序表

Java顺序表 前言一、线性表介绍常见线性表总结图解 二、顺序表概念顺序表的分类顺序表的实现throw具体代码 三、顺序表会出现的问题 前言 推荐一个网站给想要了解或者学习人工智能知识的读者&#xff0c;这个网站里内容讲解通俗易懂且风趣幽默&#xff0c;对我帮助很大。我想与…

ESP8266 接入阿里云物联网云平台

AT指令集参考资料 乐鑫科技&#xff1a;基础 AT 命令集 概念浅析 物模型 是对设备在云端的功能描述&#xff0c;包括设备的属性、服务和事件。物联网平台通过定义一种物的描述语言来描述物模型&#xff0c;称之为TSL&#xff08;即 Thing Specification Language&#xff0…

【学习笔记】3D-2D:PnP

主要解决什么问题&#xff1f; 主要解决的是已知空间中N个3D点及其图像中的2D点坐标&#xff0c;求相机在空间中的位置与姿态 求解PnP问题最少需要几个点&#xff1f; 最少只需要3个点对 求解PnP问题的常用方法 主要有用3对点估计位姿的P3P&#xff0c;另外还有DLT&#x…

前端如何学会全栈分页开发?源码和思路都在这了

本项目代码已开源&#xff0c;具体见&#xff1a; 前端工程&#xff1a;vue3-ts-blog-frontend 后端工程&#xff1a;express-blog-backend 数据库初始化脚本&#xff1a;关注公众号程序员白彬&#xff0c;回复关键字“博客数据库脚本”&#xff0c;即可获取。 前言 这是博客系…

商标注册申请名称的概率,多想名称选通过率好的!

近日给深圳客户申请的商标初审下来了&#xff0c;两个类别都下的初审&#xff0c;和当初的判断基本一致&#xff0c;普推知产老杨当时沟通说需要做担保申请注册也可以&#xff0c;后面选择了管家注册&#xff0c;最近大量的帮客户检索商标名称&#xff0c;分享下经验。 两个字基…

STM32H7系统窗口看门狗 (WWDG)应用方法介绍

目录 概述 1 认识窗口看门狗 (WWDG) 1.1 窗口看门狗定义 1.2 WWDG 主要特性 2 WWDG 功能说明 2.1 WWDG框图 2.2 WWDG 内部信号 2.3 控制递减计数器 2.4 看门狗中断高级特性 2.5 如何设置看门狗超时 3 WWDG 寄存器 3.1 控制寄存器 (WWDG_CR) 3.2 配置寄存器 (W…