例如,Math.max(.. ..)方法被重载以支持不同类型的数字。所有这些名称的一个名称,因为没有其他类型的数字,它做同样的事情。
为每个扩展 Number 的类定义的解析 NumberType 方法也是如此。
为什么会这样?如果参数化的解析方法在Number(和Number of course,参数化)中定义,那就不会更好了,如:
public abstract T parse( String s );
(后来在Number的所有子类中专门实现)
答案 0 :(得分:2)
Math.max
的各种版本都有原始参数,而不是Numbers(对象)。您建议的每次调用方法时都需要装箱/拆箱操作,这不会像当前设计那样有效。
答案 1 :(得分:2)
Number
存在,Generics仅在Java 1.5中引入。因此,这种通用的解析方法是不可能的。
关于Math.max
,它只接受基本类型,它们之间没有任何形式的关系,每个基本类型需要单独声明才能被支持。
答案 2 :(得分:0)
解析实例方法毫无意义。您必须在解析之前构造不可变值。