当前位置: 首页 > news >正文

怎么做教育网站做网站关键词要懂代码么

怎么做教育网站,做网站关键词要懂代码么,长春网站设计网站建设网站制作880元,wordpress主题 路径函数式接口与回调函数实践 一、Java 的函数式接口 是指仅包含一个抽象方法的接口#xff0c;通常用于 lambda 表达式或方法引用。Java 8 引入了很多内置的函数式接口#xff0c;比如 Runnable、Callable、Predicate、Function、Consumer 等 演示#xff0c;数据类型转换的函…函数式接口与回调函数实践 一、Java 的函数式接口 是指仅包含一个抽象方法的接口通常用于 lambda 表达式或方法引用。Java 8 引入了很多内置的函数式接口比如 Runnable、Callable、Predicate、Function、Consumer 等 演示数据类型转换的函数式接口的简单使用 step 1 定义函数式接口 FunctionalInterface public interface ConvertFunctionalInterfaceF, T {/*** 把F转换为T 类型* param form 输入对象 F* return 输出对象 T*/T convert(F form); }step 2 定义同一调用方法类 public class DataConvert{/*** 把F转换为T 类型* param data 输入对象 F* return 输出对象 T*/public static F, T T processData(F data, ConvertFunctionalInterfaceF, T functional) {return functional.convert(data);} }step 3.定义数据类型转换方法 public class BuildObjTool {public static FillTaskSqlEntity buildFillTaskSql(FillTaskSqlDTO fillTask) {FillTaskSqlEntity fillTaskSql new FillTaskSqlEntity();fillTaskSql.setExecuteSql(fillTask.getExecuteSql());fillTaskSql.setBatch(fillTask.getBatchTime());return fillTaskSql;}public static ValidTableFieldReqDTO buildValidTableField(CreateTableRelateReqDTO createTable){ValidTableFieldReqDTO valid new ValidTableFieldReqDTO();valid.setUserId(createTable.getUserId());valid.setEnterpriseId(createTable.getEnterpriseId());valid.setCollectionTarget(createTable.getCollectionTarget());}}step 4 代码中使用示例 FillTaskSqlEntity fillTask DataConvert.processData(fillTaskSql, BuildObjTool::buildFillTaskSql);写到这里似乎还没体会到函数式接口的好处吧 如果第二处涉及类型转换那么如下 ValidTableFieldReqDTO valid DataConvert.processData(createTableRelateReqDTO, BuildObjTool::buildValidTableField);如果涉及几十处类型转换那么对外的转换接口只有这一个自己传入入参对象转换方法以及接收对象。 函数式接口极大地提高了 Java 的灵活性和可读性使得许多编程模式更为简洁和易于理解。它们在事件处理、异步编程、策略模式以及集合处理等多个场景中都得到了广泛应用 二、回调函数 回调Callback是一种编程模式其中一个函数或方法在执行完成后通过调用另一个函数或方法来传递执行结果或在特定事件发生时调用。这种模式常用于异步操作、事件驱动编程中可以提升代码的可扩展性、灵活性和模块化 示例1有返回值的同步调用案例 step 1 定义回调接口 interface Callback3 {String onComplete(String result); }step 2 定义任务类 class Task3 {public String execute(Callback3 callback3) {// 模拟一些业务逻辑处理String result 模拟一些业务逻辑处理!;System.out.println(step 1…………………execute……………);// 回调通知调用方String res callback3.onComplete(result);return res;} }step 3 业务调用 public static void main(String[] args) {Task3 task3 new Task3();// 通过匿名类实现回调String res task3.execute(result - {System.out.println(step 2.Callback received: result);return 我是中国;});System.out.println(main res:res); }示例2看一个创建无关系表中实际使用的回调函数 step 1.创建回调接口 public interface CallBackInterface {ListMapString, Object onComplete(int maxLength); }step 2 回调方法类 public class CallBackTask {public ListMapString, Object execute(CallBackInterface callback, MapString, ListMapString, Object result) {// 贪心算法计算数据最长表int maxLength BuildObjTool.greedyAlgorithm(result);return callback.onComplete(maxLength);} }step 3 业务中调用 CallBackTask callBackTask new CallBackTask();ListMapString, Object buildRespList callBackTask.execute(res - BuildObjTool.buildEachTableDataResp(result, createTableInfo, res), result);复盘一下 1.业务调用首先进入CallBackTask 执行execute方法 2.CallBackTask 的execute方法返回贪心算法得到的长度maxLength 3.回调再调用业务方法中的BuildObjTool.buildEachTableDataResp(result, createTableInfo, res) 执行完返回得到的buildRespList 总路线业务--回调任务---业务 其中用到的工具方法 public class BuildObjTool {//贪心算法public static int greedyAlgorithm(MapString, ListMapString, Object result) {int max 0;for (ListMapString, Object list : result.values()) {int length list.size();max Math.max(max, length);}return max;}//把数据组装成ListMap结构public static ListMapString, Object buildEachTableDataResp(MapString, ListMapString, Object result, CreateTableInfoReqDTO createTableInfo, int maxLength) {ListMapString, Object resp new ArrayList();ListCreateTableFieldReqDTO tables createTableInfo.getTables();// 1.获取每张表对应取了哪些字段MapString, ListString tableFieldMap tables.stream().collect(Collectors.toMap(CreateTableFieldReqDTO::getEntityName,item - item.getFields().stream().map(CreateTableFieldTypeReqDTO::getTargetFieldName).collect(Collectors.toList()), (k1, k2) - k1));// 2.循环-以最长元素集合为标准for (int i 0; i maxLength; i) {MapString, Object map new ConcurrentHashMap();int finalI i;result.forEach((key, value) - {// 4.依次取每个表数据的第i条数据int size value.size();MapString, Object eachMap;if (size finalI) {eachMap value.get(finalI);} else {eachMap null;}ListString fieldList tableFieldMap.get(key);// 5.获取字段对应的数据fieldList.forEach(ite - {Object obj null;if (ObjectUtils.isNotEmpty(eachMap)) {obj eachMap.get(ite);}// 6.存储值到map---没有值的话去获取该字段对应类型的默认值map.put(ite, Objects.nonNull(obj) ? obj : getFieldDefaultValue(ite, createTableInfo));});});resp.add(map);}return resp;}}总结:Java中的回调机制Callback是实现异步编程、解耦代码、灵活处理任务的一种重要方式。通过回调方法A可以在方法B完成时被通知并处理结果。Java的回调机制并不像JavaScript那样原生支持函数作为参数但通过接口、匿名类或Lambda表达式可以轻松实现类似的效果。
http://www.hkea.cn/news/14284997/

相关文章:

  • 易语言如何做网站中信建设有限责任公司ppp项目管理部
  • 网站现状如何分析拉新app推广平台排名
  • 网站建设工作室wp主题模板抓取网站后台密码
  • 福永网站推广网站重新建设的通知
  • 廊坊网站建设公司网站建设流程包括哪些内容
  • 测量为什么要建站嘉兴网站建设企业
  • 网站优化排名分享隐迅推北京房产网站大全
  • 化工建网站多少费用网站开发培训班多少报名费
  • 网站主页特效欣赏wordpress 模版安装
  • 企业网站的一般要素吉安好的网站建设公司
  • 亿唐网不做网站做品牌考试题湛江网站排名
  • 电商网站数据中心建设方案asp网站上传到服务器上之后一打开就是download
  • 做的好的排版网站建购物网站
  • oss可以做网站根目录吗甘肃网站建设域名注册公司
  • 地方网站做相亲赢利点在哪里绵阳建设局网站皱劲松
  • 个人备案网站名称怎么写南宁哪些公司专业做网站
  • 网站备案怎么取消小众网站论文
  • 兰州网站建设与优化推广wordpress优秀免费主题
  • 网站建设后台是怎么制作的邯郸模板建站教程
  • 手机网站 win8风格百度竞价排名公司
  • 北京网站优化托管数据统计网站有哪些
  • 网站内容更改教程wap网站建设服务
  • 做网站.服务器怎么买小语种网站开发
  • 网站小图标素材建网站 收费标准
  • 做网站避免上当小程序登录代码
  • 建湖做网站多少钱网站需要多少钱
  • 怎样将自己做的网页加入网站东莞58同城
  • 零基础网站开发要学多久建筑网片多少钱一平方
  • 网站制作在哪里找做电影网站失败了
  • 做国外百科知识网站seo推广软件下载