论坛首页 Java企业应用论坛

通过代码简单介绍JDK 7的MethodHandle,并与.NET的委托对比

浏览 20450 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-09-26  
这个东东对JVM上的其他语言来说好处大大的
0 请登录后投票
   发表时间:2009-09-26  
linliangyi2007 写道
如此的Java还是我们心目中的那个纯纯的咖啡嘛!!!

MethodHandle是JSR 292的一部分,而JSR 292主要服务的对象是JVM上的动态语言实现。能为Java带来好处算是个不错的副作用。
Eastsun 写道
这个东东对JVM上的其他语言来说好处大大的

正是如此。Charles Nutter基于invokedynamic实现了个小的动态语言,目前已经比JRuby快了。大家都很期待自己的语言能从invokedynamic挖出多少性能潜力来 ^ ^
0 请登录后投票
   发表时间:2009-09-26  
java 的动态代理已经能很好的解决方法调用问题  看不出这里有什么特别的 如果单单只是大大的提高效率 或是它是个轻量级 实在很难说它会很实用
0 请登录后投票
   发表时间:2009-09-26  
MethodHandle跟动态代理要解决的不是同一个问题
我相信即便JDK 7整合进了MethodHandle,如果你不用JVM上别的一些语言,完全不*需要*MethodHandle去解决你手头的问题。
Hmm……让我想像一下用动态代理去实现策略模式是什么样的
0 请登录后投票
   发表时间:2009-09-26  
怎么 怎么 怎么 ,第一个例子怎么越看越像反射。
0 请登录后投票
   发表时间:2009-09-26  
treblesoftware 写道
怎么 怎么 怎么 ,第一个例子怎么越看越像反射。

童鞋是不是再仔细看看整篇文章? .. 

    btw: 老赵也就是看见Twitter来一下. 不看见Twitter就窝在blogcn码字..多无趣啊..
0 请登录后投票
   发表时间:2009-09-27  
当前版本的Groovy只做了callsite优化,而并没有生成大量的“invoker类”
0 请登录后投票
   发表时间:2009-09-27  
JohnnyJian 写道
当前版本的Groovy只做了callsite优化,而并没有生成大量的“invoker类”

呃……没忽悠过去,改改~多谢 ^ ^
另外Charles去年也对比过当时的JRuby与Groovy采用的优化技巧,包括method handles和call site caching。有兴趣的同学可以看看~
0 请登录后投票
   发表时间:2009-09-27  
委托 不错
0 请登录后投票
   发表时间:2009-09-27  
dennis_zane 写道
JeffreyZhao 写道
C#中的委托非常实用,但Java的这个做法有多少可用性啊


文章中说了,作为重量级的method reflection的替代品还是不错的。比之策略模式来说,这个method handler的调用方式还是比较恶心。



java的反射现在还重吗?
试试反射调用10w次花多少时间?

这个method handler的使用方式上的确没多少创意,显得还是不够简洁,跟自己写反射工具类使用上区别不大
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics