IKVM 编程武林之.NET派的北冥神功

为什么80%的码农都做不了架构师?>>>   hot3.png

在编程武林中,Java派成立较久底子雄厚,虽然掌门人Sun已经老态龙钟,镇山之技的Java语言已经被后进的新秀.NET派的C#压得喘不过气来,甚至有时候Sun老大还得跑到.NET派潜伏学艺。但是百足之虫,死而不僵,一众Java派的拥趸们自认虽然Java渐渐技不如人,但是Java派成立日久,从Java演化过来的七十二门绝技绝非武林暴发户.NET派所能比拟,其中几大支派如apache,springsource各有绝技,而衍生出的帮会、黑社会等等更是不计其数,.NET派望尘莫及。

然而江湖传言有不世神功叫北冥神功,“北冥有鱼,其名为鲲,鲲之大,不知其几千里也……”,能够容纳几千里的大鱼必定是非常广阔的海洋,因而北冥神功正是寓含了广大恢宏之意,也体现了神功的威力。“可以吸取他人的内力以供己用,是迅速提升功力的捷径。内力既厚,天下武功无不为我所用,犹如北冥,大舟小舟无不载,大鱼小鱼无不容。”

.NET派的几位高人闭关苦练,竟然悟出北冥神功,此神功后曰:IKVM.NET.

江湖后辈小子Ray Linn偶习此神功,得心得一二,不敢自珍,特此记之,以壮大我.NET门派,千秋万代,一统江湖。

那日Ray偶来到apache支派,却看到Apache弟子们各施绝技,好不热闹. Ray对Apache绝技手痒已久,想来得习IKVM.NET已有时日,斗胆上前叫阵。迎战者哪Apache派中的小弟子,江湖人称:commons.collection.

二人拳脚来去,Ray却懒得与之多动手脚,随即默念真言:
ikvmc -assembly:commons -target:library -version:1.0.0.0 commons-collections-3.2.1.jar


collection陡然萎靡在地,想是一身内功尽被Ray所吸去,Apache派人等尽皆失色,“我等苦练十余载,内力尽为汝一夕取去”,莫敢上前。

Ray回转.NET派,试练collection的神功,借助IKVM.OpenJDK.Core之神器,神功即成,试演如下:

using System;using org.apache.commons.collections;
using org.apache.commons.collections.functors;namespace MyLib
{class Program{static void Main(string[] args){String name = "Tim";Predicate nameJohn = new EqualPredicate( "John" );Predicate nameTim = new EqualPredicate( "Tim" );Predicate instanceString = new InstanceofPredicate(typeof(String) );Predicate instanceDouble = new InstanceofPredicate(typeof(Double));Console.Out.WriteLine( "Is Name John?: " + nameJohn.evaluate( name ) );Console.Out.WriteLine("Is Name Tim?: " + nameTim.evaluate(name));Console.Out.WriteLine( "Is this a String?: " + instanceString.evaluate( name ) );Console.Out.WriteLine( "Is this a Double?: " + instanceDouble.evaluate( name ) );}}
}


相较原有神功:
import org.apache.commons.collection.Predicate;
import org.apache.commons.collection.functors.*;
String name = "Tim";
Predicate nameJohn = new EqualPredicate( "John" );
Predicate nameTim = new EqualPredicate( "Tim" );
Predicate instanceString = new InstanceofPredicate( String.class );
Predicate instanceDouble = new InstanceofPredicate( Double.class );
// Testing all predicates for "Tim"
System.out.println( "Is Name John?: " + nameJohn.evaluate( name ) );
System.out.println( "Is Name Tim?: " + nameTim.evaluate( name ) );
System.out.println( "Is this a String?: " + instanceString.evaluate( name ) );
System.out.println( "Is this a Double?: " + instanceDouble.evaluate( name ) );


竟然绝无二致。

偌大Java江湖,从此为我.NET所用,哇哈哈。

作者: ray_linn 
声明: 本文系JavaEye网站发布的原创文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!

已有 48 人发表回复,猛击->>这里<<-参与讨论


JavaEye推荐
  • 上海:天会皓闻诚聘CTO技术总监
  • 上海:天会皓闻诚聘资深Java架构师
  • 北京:手机之家网站诚聘PHP程序员
  • 成都:月薪5千到1万招聘Java开发工程师
  • 上海:高薪诚聘Python开发人员



转载于:https://my.oschina.net/soar/blog/2516

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

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

相关文章

php 自定义菜单 openid,微信公众平台开发(99) 自定义菜单获取OpenID

关键字 微信公众平台 自定义菜单 OpenID作者&#xff1a;方倍工作室原文&#xff1a;http://www.cnblogs.com/txw1958/p/weixin-menu-get-openid.html在这篇微信公众平台开发教程中&#xff0c;我们将介绍如何在自定义菜单中获得用户的OpenID。本篇开发教程的实质是微信自定义菜…

mysql优化的重要参数 key_buffer_size table_cache

MySQL服务器端的参数有很多&#xff0c;但是对于大多数初学者来说&#xff0c;众多的参数往往使得我们不知所措&#xff0c;但是哪些参数是需要我们调整的&#xff0c;哪些对服务器的性能影响最大呢&#xff1f;对于使用Myisam存储引擎来说&#xff0c;主要有key_buffer_size和…

上海大华条码称代码_上海大华计价电子秤 使用软件 TM-H 大华条码称设置15KG

电子秤上海&#xff0c;电子秤价格&#xff0c;电子秤上海牌子好 电子秤有哪些电子秤那个牌子好&#xff0c;产品质量好大华电子秤软件下载&#xff0c;大华电子秤设置&#xff0c;大华电子秤软件郑重声明&#xff1a;本店所售大华条码秤&#xff0c;属于上海大华的正品&#x…

代码传奇 | 明明可以靠颜值 却用代码把人类送上了月球的女人——Margaret Hamilton

据说「软件工程师」这个名词就是她发明的玛格丽特站在阿波罗计算机指导手册 (AGC) 的源代码程序列表旁边&#xff0c;这些材料摞起来比她的人还要高。图片来源&#xff1a;Margaret Hamilton缔造传奇的人似乎有个共性&#xff1a;本来没想干一票大的&#xff0c;甚至她的打算都…

如何在 ASP.Net Core 中使用 NCache

虽然 ASP.Net Core 中缺少 Cache 对象&#xff0c;但它引入了三种不同的cache方式。内存缓存分布式缓存Response缓存Alachisoft 公司提供了一个开源项目 NCache&#xff0c;它是一个高性能的&#xff0c;分布式的&#xff0c;可扩展的缓存框架&#xff0c;NCache不仅比 Redis 快…

oracle 动态游标行数,oracle动态游标的简单实现方法

下面就是例子程序--明细表打印予处理 通用报表&#xff1a;procedure mx_print_common(pd_id in mx_pd_syn.pd_id%type,p_pd_mxb_id IN mx_pd_mxb_syn.p_mxb_id%type,p_dept_no IN sc_mxk.dept_code%type,p1 sc_bz_syn.bz_code%type,p2 sc_cjjc_syn.cjjc_code%type,p3 sc_mxk.…

每扇区2048字节的U盘乱码的数据恢复

每扇区2048字节的U盘乱码的数据恢复一个U盘&#xff0c;FAT32分区&#xff0c;显示的是乱码&#xff0c;远程看对方的U盘参数&#xff0c;发现一个比较怪的现象&#xff1a;每扇区字节数是2048字节&#xff08;U盘量产时可能是以光盘形式形成的&#xff09;&#xff0c;对方传的…

为什么有些大公司的效率弱爆了?

阅读本文大概需要5分钟。上周写了篇文章&#xff1a;为什么有些大公司的技术弱爆了&#xff1f;不少朋友读完后表示有同感&#xff0c;还有一些朋友在读者群探讨大公司效率问题。有几个朋友谈到自己的公司效率低下&#xff0c;做一件事需要层层审批&#xff0c;并且遇到各种阻力…

2018年最有前景的十大行业

我们想和大家分享的是围绕十个行业、数十个细分领域&#xff0c;在2018年发展趋势展望&#xff1a;01 消费新零售——平台级近半年&#xff0c;新零售已被多次提及。但在年终盘点我们再次提到这个“热词”&#xff0c;是因为该领域未来还将出现超级平台级的公司。新零售未来更多…

oracle 监听 无法连接,解决ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务...

你还有可能是遇到了定时的问题。如果监听器被重新启动&#xff0c;那么数据库实例就必须向它重新注册。通常情况下&#xff0c;每60秒就会出现这样的问题。如果你迫不及待&#xff0c;那么就以数据库管理员的身份登录到数据库服务器&#xff0c;并且运行“更改系统注册器”&…

下列选项中 采用边界值平滑_数据挖掘期末考题(答案).doc

华南理工大学计算机科学与工程学院2012—2013学年度第二学期期末考试《数据仓库与数据挖掘技术》试 卷(假的)专业&#xff1a;计算机科学与技术 年级&#xff1a;2010 姓名&#xff1a; 学号&#xff1a;注意事项&#xff1a;1. 本试卷共四大题&#xff0c;满分100分&#xff0…

昨日搬至办公室的书籍

由于家里地方小&#xff0c;总有一部分书籍需要跟着我辗转至各公司。其中一些公司只能让我放抽屉&#xff08;地方小&#xff09;甚至地板上&#xff0c;而有一些公司就能让我把书都摞桌子上。昨天下午我特地来了一次办公室&#xff0c;只为搬运书籍。灭霍霍&#xff0c;可真是…

如何在 ASP.Net Core 中对接 WCF

在 REST API 出现之前&#xff0c;SOAP (Simple Object Access Protocol) 一直都是基于 web 的标准协议&#xff0c;虽然现在 REST 大行其道&#xff0c;但在平时开发中总会遇到对接第三方服务采用的是基于SOAP协议的场景&#xff0c;在这篇文章中&#xff0c;我们将会讨论如何…

什么是区块链? 区块链的入门教程~

区块链&#xff08;blockchain&#xff09;是眼下的大热门&#xff0c;新闻媒体大量报道&#xff0c;宣称它将创造未来。可是&#xff0c;简单易懂的入门文章却很少。区块链到底是什么&#xff0c;有何特别之处&#xff0c;很少有解释。下面&#xff0c;我就来尝试&#xff0c;…

linux提升权限命令提示符,win10如何直接使用命令提示符提高管理员权限?

原标题&#xff1a;win10如何直接使用命令提示符提高管理员权限?在使用普通的命令提示符时&#xff0c;如果遇到需要管理员权限的操作&#xff0c;往往需要重新打开一个具有管理员权限的命令提示符页面进行操作。而在Linux操作系统中&#xff0c;可以通过输入su来获取系统最高…

require引入js vue_请教 关于使用require 引入vue 和公共js的问题

移动端布局 计算font-size的1、引入公共样式失败。没有去计算2、aa 是vue 引入成功。 但是 我以后一个文件需要一个vue 文件 应该怎么引入好点啊。 怎么分解开进行引入?3、在vue的情况下。 引入Mint UI我理解是在main的文件里面加载vue Mint ui 和一些公共样式。 在页面引入ma…

探索 .NET Core 依赖注入的 IServiceProvider

在上一篇文章中&#xff0c;我们学习了Microsoft.Extensions.DependencyInjection中的IServiceCollection&#xff0c;包括服务注册转换为ServiceDescriptors&#xff0c;然后添加到集合中。探索 .NET Core 依赖注入的 IServiceCollection[1]在本文中&#xff0c;我们会学习 IS…

《WinForm开发系列之控件篇》Item1 BackgroungWorker

cranejuan的专栏 BackgroundWorker实现原理 winfom組件---BackgroundWorker转载于:https://www.cnblogs.com/Sue_/articles/1657254.html

如何快速高效地学习互联网新技术

我们生活在一个振奋人心的时代&#xff0c;区块链、人工智能、大数据&#xff0c;现在各种新技术层出不穷&#xff0c;那么如何快速高效地学习互联网新技术呢&#xff1f;我认为首先思想要主动求变&#xff0c;敢于跳出自己的舒适区&#xff0c;对任何技术都抱有开放的心态。贪…

linux上用的端口转发工具,linux下最简单好用的的端口转发工具

linux下最简单好用的的端口转发工具解压安装tar zxvf rinetd.tar.gzmakemake install编辑配置vi /etc/rinetd.conf0.0.0.0 8080 172.19.94.3 80800.0.0.0 2222 192.168.0.103 33891.2.3.4 80 192.168.0.10 80说明一下(0.0.0.0表示本机绑定所有可用地址)将所有发往本机8080端口的…