• Linq to Objects for Java


      好几年不写博客了,人也慢慢变懒了。然而想写了却不知道写点啥,正好最近手头有点小项目就分享一下经历。

      现在 java 的大环境下,基本都是围着 spring 转,加上一堆其他的库。有了架子就开始搞业务了,大家都忙的焦头烂额。写业务的时候经常碰到操作集合的情况,基本上就是 apache、stream-api 都用上,实在不行就各种循环,各种容器 array,list,map 纷纷上阵。但是本人是从 C# 转到 java 的,总是觉得这么搞浪费开发效率,非常不爽。这里嘲讽一下自己,有的用就不错了,还挑肥拣瘦,就是被 .net 给惯得毛病。

      本着搞事情的原则,就想会不会有 第三方的 linq 库可以拿来用用。一搜发现还真有个库,用法跟 .net 的一模一样(java 的假泛型导致的,有些 api 用起来还是比较难受)。但是打开源代码看了一下,还是有点失望。虽然实现了表达式树和大多数的 linq api。但是实现方式跟我的预期不一样,可能那个库写的比较早那时候 java 还不支持在接口中写默认方法,关键是代码写的比较乱,实现思路跟 .net 的 linq 也有好多不一致的。

      思想斗争了一番,最终决定自己在 java 上实现一个 linq。具体的实现参考了 .net 的源码,质量可以保证。但是 java 不支持 yiled。中间又有一段时间研究 java 的 yield 库,最后果断放弃了,一是没有编译成功,二是非官方的字节码修改不太靠谱。最终决定将 .net 中的 yiled 关键字,结合编译器生成的状态机代码,翻译成 java 版本的 状态机。最终诞生了 Linq to Objects for Java 这个库。最近征得领导同意,将代码开源,以不断优化。
      最后,附上项目地址:https://github.com/timandy/linq。欢迎拍砖,欢迎 fllow。

  • 相关阅读:
    浏览器不兼容原因及解决办法
    VC++ MFC DLL动态链接库编写详解
    Saas是什么?
    用CSS中的Alpha实现渐变
    一种真正意义上的Session劫持[转]
    使用.NET Framework中新的日期时间类型[转]
    Hook、钩子、VC++ 基本概念
    H264
    Windows编程中各种操作文件的方法
    将TCP/IP协议移植到内嵌的弹片机中配合GPRS无线模块开发应用
  • 原文地址:https://www.cnblogs.com/xuchonglei/p/7292102.html
Copyright © 2020-2023  润新知