为什么Java有这么多解析方法?

Why Java has so many parse methods?

例如 Math.max( .. .. ) 方法被重载以支持不同类型的 Number。对它们都起一个名字是因为,不管 Number 的类型如何,它都做同样的事情。
为每个 class 扩展 Number 定义的 parseNumberType 方法也是如此。

为什么会这样?如果在 Number(当然还有 Number,parameterized)中定义了一个参数化的解析方法,那就更好了,比如: public abstract T parse( String s );(之后在 Number 的所有子 classes 中具体实施)

Math.max 的各种版本都有原始参数,而不是数字(它们是对象)。你的建议是每次调用方法时都需要一个 boxing/unboxing 操作,这不会像当前设计那样有效。

Number 自 JDK 1.0 以来就存在,泛型仅在 Java 1.5 中引入。因此,这种通用的解析方法是不可能的。

关于Math.max,它只接受原始类型,它们之间没有任何形式的关系,每个原始类型都需要单独声明才能被支持。

解析实例方法毫无意义。您必须在解析之前构造不可变值。