使用Function与BiConsumer动态获取与操作对象中的属性

news/2024/12/2 11:24:45/文章来源:https://www.cnblogs.com/databank/p/18581350

代码:

package com.xxx.xxx.utils;import com.alibaba.fastjson.JSON;
import lombok.Data;import java.util.function.BiConsumer;
import java.util.function.Function;/*** 函数测试*/
public class Test {@Datapublic static class TestObj {private String name;private String nameContent;}/*** 获取数据函数*/public static final Function<TestObj, String> get = TestObj::getName;/*** 插入数据函数*/public static final BiConsumer<TestObj, String> set = TestObj::setNameContent;/*** 处理数据方法** @param t   实例对象* @param get 对象的get方法函数* @param set 对象的set方法函数* @param <T> T*/public static <T> void addContentFun(T t,Function<T, String> get,BiConsumer<T, String> set) {String name = get.apply(t);set.accept(t, name + ": 大家好,我是" + name);}/*** test*/public static void main(String[] args) {// 创建测试对象TestObj obj = new TestObj();obj.setName("zhang san");// 调用处理方法Test.addContentFun(obj, Test.get, Test.set);System.out.println("end data: " + JSON.toJSONString(obj));// end data: {"name":"zhang san","nameContent":"zhang san: 大家好,我是zhang san"}}
}

  

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【终端】终端配置、Vim使用相关

终端设置 MobaXterm主题 GithubVim 设置相关设置显示行号/etc/vimrc 是系统范围的初始化配置 ~/.vimrc 个人的vim初始化配置如果没有个人的vim初始化配置:touch ~/.vimrc vim ~/.vimrc设置好保存退出 wq使用相关跳转跳转指定行 :100跳转到100行 跳转到最开头 gg 跳转到最末…

idea的如何git代码进行合并

案例,将dev-wsg 的部分代码提交,合并到develop中1、先使用命令,将分支切换到develop分支 git checkout develop2、在idea 底部,选中这个标签页 3、选中要合并的提交,选择优选。这样本地的代码,会合并到本地develop分支中 4、优选后,如果分支右侧显示还要推送,则要进行…

11.30学习日记

11.30学习日记 oj 跑项目报错如下查问题,改成java8这个路径也要改掉这里用的是木马程序测试路径 改成我们正常测试的main.java就行运行成功

携程酒店库存查询接口(接单被骗直接放出接口)

本来是接单的,做了一个查询库存自动到他们系统里下库存的单子,做好部署好,老板可能也有点技术,拿了跑路了,那就放出来,给大家用 接口请求格式:https://down.ychengsnsm.com/jd/api.php?id=48565681&checkinDate=2024-12-30 测试图:id就是酒店id,随便到携程到个酒…

jQuery和CSS3超酷3D翻转式模态对话框插件

jquery-awesomodals是一款JQUERY和CSS3超酷3D翻转式模态对话框插件。该对话框特效通过jquery和CSS3 transitions和transforms来在对话框打开时制作3D翻转的效果,效果非常的酷。在线演示 下载安装 可以通过bower来安装jquery-awesomodals插件。$ bower install jquery-awesomo…

软件工程课堂测试九

软件需求与分析课堂测试九—结构化建模分析II(100分) (45分钟)1、 需求描述: 请设计一个仓储管理系统原型系统,该系统支持多个仓库的设立。统一 设立物资台账,物资台账需包含物资编码、物资名称、规格、材质、供应商、 品牌、物资分类,用户可以自定义物资的物资分类。…

Zabbix7 乱码处理

Zabbix7 乱码处理 Zabbix安装好后,查看图形时下面的文字往往显示不出来从windows主机 C:\Windows\Fonts拷贝字体文件双击打开,拷贝文件到桌面上传到 Zabbix主机以下目录(可以使用lrzsz 上传,安装方式 dnf install lrzsz -y) /usr/share/zabbix/assets/fonts 修改配置文件vim…

PDPS的虚拟调试整流程简单版

1:和PLC虚拟连接【选项------PLC------外部连接------添加Advance】2:PDPS插入cojt/jt文件,【建模-插入组件】【这样可以直接把机械端的设计文件导入】 3:定义机械设备的动作设计,比如气缸的打开/关闭动作【建模-运动学设备-姿态编辑器】 4:定义设备的动作逻辑流程【控件…

经济下行,利润却翻倍!AI救了这些企业的命

只有紧跟AI潮流,企业才能在变革中不断成长,开辟新的增长点,从而增强核心竞争力。大家好,我是陈哥,今天想和大家聊聊企业落地AI~ 自2022年底ChatGPT问世以来,AI热度高居不下,这场科技革命正以不可阻挡之势改变着世界。 SpaceX和特斯拉的董事会成员史蒂夫贾维森曾说:“机…

循环神经网络设计同样可以使用预训练词“嵌入”

序言:重新训练人工智能大型模型是一项复杂且高成本的任务,尤其对于当前的LLM(大型语言模型)来说,全球99.99%的企业难以承担。这是因为模型训练需要巨大的资源投入、复杂的技术流程以及大量的人力支持。因此,无论在科学研究还是实际应用中,人们通常依赖开源的预训练模型及…

img中的src加载失败时如何用默认图片来替换呢?

在前端开发中,当 <img> 元素的 src 属性指定的图片加载失败时,可以使用几种方法来替换为默认图片: 1. 使用 onerror 属性: 这是最直接和常用的方法。onerror 属性会在图片加载失败时触发一个 JavaScript 事件,你可以在这个事件中将 src 属性更改为默认图片的路径。 &…