JDK的这种方法对任何人都有意义吗?

问题描述

| 我在JDK中碰到过这种方法 来自com.sun.org.apache.xml.internal.serializer.Version;
  public static int getDevelopmentVersionNum()
  { 
    try {   
        if ((new String(\"\")).length() == 0)
          return 0;
        else  
          return Integer.parseInt(\"\");
    } catch (NumberFormatException nfe) {
           return 0;
    }    
  } 
除了“ѭ1”以外,这还做什么? 我觉得我想念什么。我只能假设这是生成代码。 ;)     

解决方法

        该文件似乎是由以下ѭ2following文件通过文本替换生成的。因此,当“ 3”变量为空时,将生成相关代码。在这种情况下,需要执行“ 4”校验来返回0。     ,        我认为
\"\"
在发布之前已被配置文件中的某些字符串替换。在这种情况下,它为空,但也可以包含数字。如果您将“ 5”视为变量,则此代码具有一定意义。     ,        该方法上的javadoc表示要指定正在进行中的开发下降。因此,我想这与仅供内部开发使用的其他任何东西一样有意义。一旦发布,他们可能会从此方法“清除”任何实际的版本信息。无论哪种方式,我都不会将其放在任何意义上。除非您是oracle的开发人员,否则请使用此特定软件包。     ,        是的,可能有一个生成器/预处理器,它在两个if \中都输出一个字符串。 如果此字符串是数字,则该方法将其值作为数字返回。如果为空(如本例所示)或非数字,则返回0。     ,        看起来原始的xalan具有类似的实现-至少我在grepcode上找到了与xalan 2.7.1相同的行 对于总是返回
0
的方法,这确实没有任何意义,但是花了很多功夫,但是通过查看
Version
的javaDoc和此方法,我得到的印象是所有这些都是(或曾经)在进行中-某种实现存根,可以仅输入(硬编码)版本号。目前,else块和catch块是无法访问的代码。 可能会自动生成“ 9”,处理器可能会使用实际值而不是“ 5”来生成此方法-在这种情况下,应确保该方法的安全,因为配置文件中的值可能不表示整数。