反射是最重要的JAVAAPI

有一天,我在想--这是最重要的JavaAPI。SE和EEAPI中的哪个使大多数Java生态系统成为可能,并且不可能仅仅作为第三方库重新创建。

就像你可能猜到的那样-我想这。是的,它不可避免地成为每一个项目的一部分,直接或间接。但是,对于更多的API,尤其是Collection API,这是正确的。但是反射API的重要之处在于它启用了当今流行的大多数工具和框架--Spring,Hibernate,大量的Web框架。

大多数其他API都可以在JDK之外实现。集合API很可能是共用-收集或番石榴。更好的做法是,它是JDK的一部分,但是没有它我们就可以管理(它出现在Java1.2中)。但是反射API不能,它几乎是语言的一个组成部分。

如果没有反思,你就不可能拥有我们今天使用的任何花哨的工具。不是ORM,不是依赖注入框架,也不是大多数Web框架。好吧,从技术上讲,你可以在某个时候有个主题-,或者只使用java-config。有人可能会说,如果不是为了反思,我们就跳过了整个XML配置时代,直接转向基于代码的配置。但是,不仅仅是配置依赖于所有这些框架中的反射。即使Spring可以在配置期间实例化bean并通过将它们转换为InitalizingBean,您将如何处理自动注入而不反射(“手动”不算,因为它不是自动装配)?在Hibernate中,内省和javaBeanAPI似乎足够了,但是当您深入挖掘时,它们就不足够了。一般情况下,处理注释是不可能的。

如果没有这些框架,Java就不会是今天广泛使用的技术。如果我们没有庞大的开源生态系统,Java将是相当利基的[引文所需]。当然,这并不是唯一的因素--语言设计者和JVM实现者都有很多正确的地方。但我认为,反思是其中之一。

是的,使用反射感觉很烦人。在非框架代码中的反射感觉像是最后的手段--只有在给定的库没有为扩展设计好的情况下才使用它,但是您需要稍微调整它以适应您的情况。但是,即使您的代码库中有零反射代码,您的项目可能已经满了它,没有它就不可能实现。

使用反射的需要可能被视为语言的缺陷之一--您不能使用该语言提供的内容来做重要的事情,所以您可以求助于一个神奇的API,它允许您不受限制地访问其他(据称)精心设计的API。但我想说的是,即使有反思也是一种事实上的语言特征。它可能在使Java如此受欢迎和广泛使用方面发挥了关键作用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值