- 金属破碎机
- 破石机
- 石头破碎机
- 颚式破碎机
- 反击式破碎机
- 锤式破碎机
- 复合式破碎机
- 冲击式破碎机
- 立式复合破碎机
- 重锤式破碎机
- 花岗岩石破碎机
- 高效破碎机
- 双齿破碎机
- 煤矸石破碎机
- 四辊破碎机
- 环锤式破碎机
- 小型破碎机
- 双轴破碎机
- 单辊式破碎机
- 对辊式破碎机
- 圆锥式破碎机
- 振动给料机
- 圆振动筛
- 斗式提升机
- 直线振动筛
- 电磁振动给料机
- 滚筒筛沙机
- 高频筛
- 振动筛
- 滚筒洗石机
- 干式磁选机
- 螺旋溜槽
- 螺旋分级机
客户购机前,公司免费派工程技术人员到用户现场为用户规划场地、...
- 题主的问题是关于“parametricpolymorphism”的不同实现方式的比较。这些话题水都挺深的。关键是“reifiedgenerics”与“genericsviaerasure”这俩其实都是大的思路,可以对应到许多种不同的实现,每个小细节的差异都可能会带来不同的优缺点所以写起来很麻烦?如果题主把问题收窄为:C#风格的“reifiedgenerics”与Java5风格的“genericsviaerasure”个优缺点的对比的话那就比较容易精确回答——当然描述起来还是要写很多字。为了偷懒省得自己码字,www qq2138.com要诚意送上若干传送门:StateoftheSpecialization<-这篇文档是BrianGoetz(目前Java语言设计的架构师)写的调研报告,以及探索未来Java实现reifiedgenerics所制作的原型的实现方式。这里说的原型是第一版原型。JVMLS2015-AdventuresontheRoadtoValhalla(打不开请自备工具?)<-这是几天前刚开完的JVMLanguageSummit2015上BrianGoetz的演讲,关于Java的reifiedgenerics的原型实现的现状和展望。这里说的原型是第三版原型,跟第一版相比已经颇有不同。OpenJDK:Valhalla<-这是探索未来Java引入用户自定义值类型(customvaluetype)与reifiedgenerics的OpenJDK项目。JEP218:GenericsoverPrimitiveTypes<-这是关于允许Java泛型拓展到支持primitivetype的提案草案。上面的传送门之中,第一个(StateoftheSpecialization)的前半部分www qq2138.com觉得可以完美回答题主的疑问。它比较了三种泛型实现方式的优缺点:C++:模板方式实现,在编译时完全展开并且支持偏特化,类型精度高,代码共享差;Java5:擦除方式实现,仅用于编译时类型检查,在运行时擦除,向后兼容性好,代码共享好,类型精度非常差;C#2.0:混合方式实现,在运行时展开特化,类型精度高,代码共享还行。详情请跳进传送门阅读文档。www qq2138.com觉得Brian这篇调研写得非常好,www qq2138.com没啥可补充的。再放个自己的传送门:C#泛型(MSIL)的内部是怎么实现的?-RednaxelaFX的回答=================================================P.S.很多人可能都只在乎erasure的纱布之处,但没关注过它带来的好处。其实在有些场景这种做法还确实是有用处的。举个例子:它允许了同一系列的泛型类型可以自动有共同基类,例如ArrayList<String>和ArrayList<Object>就可以有共同基类ArrayList<?>(擦除版)。假如说www qq2138.com要从一个不太关心类型的语言调用Java的库方法,例如从Rhino/Nashorn所实现的JavaScript调用Java方法,就不用费力去指定那个泛型参数。相比之下,在CLR上实现的IronPython和IronRuby在与C#代码交互时就经常被泛型参数绊到,不得不给语言发明扩展语法来指定泛型参数。例子请参考IronPython的文档:IronPython.NETIntegration
Reifiablegenerics与Typeerasuregenerics各有怎样的优点与缺点
2019-11-02 09:50:19