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

个人怎么做动漫短视频网站邵阳多用户商城网站建设

个人怎么做动漫短视频网站,邵阳多用户商城网站建设,小程序搭建工具,郑州做网站推广运营商总览 lambda序列化在许多用例中很有用#xff0c;例如持久配置或作为远程资源的访客模式 。 远程访客 例如#xff0c;因此我想访问远程Map上的资源#xff0c;可以使用get / put#xff0c;但是说我只想从Map的值中返回一个字段#xff0c;我可以将lambda作为访问者来传… 总览 lambda序列化在许多用例中很有用例如持久配置或作为远程资源的访客模式 。 远程访客 例如因此我想访问远程Map上的资源可以使用get / put但是说我只想从Map的值中返回一个字段我可以将lambda作为访问者来传递以提取信息。我想要。 MapView userMap Chassis.acquireMap(users, String.class, UserInfo.class); userMap.put(userid, new UserInfo(Users Name));// print out changesuserInfo.registerSubscriber(System.out::println);// obtain just the fullName without downloading the whole object String name userMap.applyToKey(userid, u - u.fullName);// increment a counter atomically and trigger // an updated event printed with the subscriber. userMap.asyncUpdateKey(userid, ui - {ui.usageCounter;return ui; });// increment a counter and return the userid int count userMap.syncUpdateKey(userid,ui - { ui.usageCounter; return ui;},ui - ui.usageCounter); 如您所见添加各种简单功能或调用方法来执行所需的操作很容易。 唯一的问题是默认情况下lambda无法序列化。 可序列化的Lambda 使lambda可序列化的一种简单方法是将的可转换类型添加到引用lambda的实现的变量中。 FunctionUserInfo, String fullNameFunc (FunctionUserInfo,String Serializable) ui - ui.fullName; String fullName userInfo.applyToKey(userid, fullNameFunc); 如您所见这引入了很多样板。 使用lambda的一个关键原因是避免样板代码那么替代方法是什么 使lambda可在您的API中序列化。 不幸的是无法更改标准API或添加其子类但是如果您拥有自己的API则可以使用Serializable接口。 FunctionalInterface public interface SerializableFunctionI, O extends FunctionI, O, Serializable { } 该接口可用作参数类型。 default R R applyToKey(K key, NotNull SerializableFunctionE, R function) {return function.apply(get(key)); } 您的API用户不必明确声明lambda是可序列化的。 // obtain just the fullName without downloading the whole object String name userMap.applyToKey(userid, u - u.fullName); 远程实现对lambda进行序列化然后在服务器上执行该lambda并返回结果。 类似地存在将lambda应用于整个地图的方法。 查询和订阅 为了支持查询如果要隐式添加Serializable则不能使用内置的streamAPI。 但是您可以创建一个尽可能相似的文件。 Map collect userMap.entrySet().query().filter(e - e.getKey().matches(u*d)).map(e - e.getValue()).collect(Collectors.groupingBy(u - u.usageCounter)); 或作为过滤的订阅。 // print userid which have a usageCounter 10 each time it is incremented. userMap.entrySet().query().filter(e - e.getValue().usageCounter 10).map(e - e.getKey()).subscribe(System.out::println); 这与常规流API的不同之处在于数据可以分布在许多服务器上并且当任何服务器上的数据发生更改时您都会得到回调。 在服务器上应用过滤器和映射时只有您感兴趣的数据才通过网络发送。 Java序列化 Java序列化是一个很好的通用化向后兼容的序列化库。 替代方案尝试解决的两个最常见问题是性能和跨平台序列化。 在上面的示例中fullNameFunc序列化到700多个字节并且有非常有限的选项来优化它以减少消息的大小或产生的垃圾量。 相比之下简单的二进制YAML序列化使用348并提供更多选项来优化序列化。 这就提出了如何使用替代跨平台或更快的序列化格式来序列化lambda的问题。 替代序列化 您可以加入当前的序列化机制。 不支持此功能它可以随时更改但是没有其他受支持的方式来执行此操作。 无论如何您可以这样做 Method writeReplace lambda.getClass().getDeclaredMethod(writeReplace); writeReplace.setAccessible(true); SerializedLambda sl (SerializedLambda) writeReplace.invoke(lambda); 这为您提供了一个对象您可以检查该对象以提取lambda的内容。 要么查看它调用什么方法要么对其进行序列化。 在反序列化方面您可以重新创建该对象并可以在该对象上读取Resolve。 标准API 当前没有用于内省lambda的标准API。 这样做是有意进行的以便将来可以更改实现尽管没有公共JEP可以这样做。 但是就像Unsafe是内部API一样我期待有一天可以使用标准API而不必深入研究JVM的内部来实现解决方案。 结论 通过对API进行一些更改您可以使序列化lambda对开发人员而言基本上是透明的。 这使实现简单的分布式系统更易于使用同时为您提供了优化方法。 翻译自: https://www.javacodegeeks.com/2015/07/how-and-why-to-serialize-lambdas.html
http://www.sadfv.cn/news/30864/

相关文章:

  • 网站城市分站是怎么做的WordPress mx 主题
  • 制作网站专业地方建设的钱哪里来
  • js多久可以做网站有专门做背景音乐的网站吗
  • 不知此网站枉做男人的网站上海建设网站平台
  • 银行门户网站建设北京网页制作模板
  • 中国建设教育协会官方网站帝国cms 网站名称标签
  • 哪个小说网站版权做的好处哪个网站可预约做头发
  • 商丘市住房和城乡建设厅网站电脑网站打不开怎么解决
  • 做的网站怎么让别人也能看到上海中心设计公司是谁
  • 为女朋友做网站网站建设费可摊几年
  • html5网站代码上海官网网址
  • 宁阳网站建设深圳营销型企业网站
  • 网站如何做信息表丰台建设企业网站
  • 云龙微网站开发宁波妇科专家哪个最好
  • 学校建设微网站的方案免费网站域名空间申请
  • 淄博住房和城乡建设局网站南充市房地产网官方网站
  • 如何夸奖一个网站做的好最近一周新闻大事摘抄
  • 中国智慧城市建设门户网站运维工程师
  • 网站开发登录要做哪些验证河南郑州网站关键词排名助手
  • wordpress 分隔符 sp网站维护优化
  • 兰州网站优化服务王野天演员
  • 网站产品链接怎么做上海国外网站建设
  • 深圳龙岗淘宝网站建设公司有哪些铁道部售票网站多少钱建设
  • 手机模板网站wordpress edu 2.0
  • 网站编程是什么意思往网站上做新东西需要什么
  • 有没有做卡哇伊的企业网站深圳画册设计龙华
  • 广州哪家公司做网站好什么是自主设计网站
  • 个人博客网站制作搭建任县网站建设
  • 亳州建设机械网站什么都能看的浏览器
  • 湖南营销网站建设设计最好看的WordPress 音乐播放器