java – isInstance&instanceof – 为什么没有通用方法?
参见英文答案 > instanceof vs isInstance()????????????????????????????????????2个 例如,这是目前使用的方式: 1)的instanceof
2)isInstance
所以,我的问题是为什么我们不能有一个适用于上面第二个例子的instanceof运算符的通用实现如下? (即为什么它不能在运行时解析类型?)
最佳答案
一些背景:
>关键字/语法的实例是Java 1.0(IIRC)中的Java. instanceof的语法是< expr> ‘instanceof’< type>.为了支持您的建议,他们必须将其更改为< expr> ‘instanceof’< type> | < EXPR取代.这有几个问题: >它可能会引入语法歧义. (人们必须进行全面分析,以确定是否属于这种情况.) 另一个问题是,这种“增强”对典型程序员编写正确代码的能力影响不大.基本上,这是一个美容变化.因此,没有真正的理由进行改变. 现在我不知道Java团队是否考虑过这个选项. (你必须问他们!).如果他们这样做,我不知道他们为什么拒绝它.但无论这些问题的答案是什么,Java都不会以这种方式工作……你只需要忍受它. (如果还有另一个用于Java 9的“项目硬币”,你可以提出这个想法,但坦率地说,我认为它不会得到太多的支持.许多更有价值的想法都未能成功.)
不,我的意思是语法可能含糊不清;即,给定的话语可以用两种不同的方式解析,意思是两种不同的东西.然后,您需要一些额外的规则(除语法之外)来整理哪个解析是正确的.
问题是,这是规范编写者指定的所有额外语言复杂性,编译器编写器实现,以及程序员理解. 真正的好处是什么?只是一点语法“优雅”……当你考虑在不同层面发挥作用的特殊规则使它“工作”时,它实际上并不像看起来那么优雅. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – 为什么使用printf(“%s”)传递给泛型方法的参数?
- java – Teamcity – Build Number – 传入ant脚本
- java – 在不重新启动的情况下将应用程序部署/重新部署到To
- java – jOOQ不生成标志设置为true的DAO
- 浅析Spring Security登录验证流程源码
- java – 有没有通用的Maven代码生成器?
- java – 无法使用Spring HATEOAS和Jersey获得HAL渲染
- 我怎样才能否定Java Fraction,这是我创建的一个类
- java – 以编程方式检查可用的heapSize?
- java – Eclipse – Sonar S2629可能带有新String的误报