为什么Java有这么多解析方法?
作者:互联网
例如,Math.max(.. ..)方法被重载以支持不同类型的Number.它们全部取一个名字,因为没有数字的类型,它就做同样的事情.
为每个扩展Number的类定义的parseNumberType方法也是如此.
为什么会这样呢?如果在Number(和Number,当然是参数化)中定义了参数化的解析方法,那就再好不过了:
公共抽象T parse(String s); (并且此后在Number的所有子类中专门实现)
解决方法:
自JDK 1.0起存在Number
,泛型仅在Java 1.5中引入.因此,这种通用的解析方法将是不可能的.
关于Math.max,它仅接受基本类型,它们之间没有任何形式的关系,并且每种基本类型都需要单独声明才能得到支持.
标签:method-overriding,parameterized-types,java 来源: https://codeday.me/bug/20191028/1949739.html