代码之家  ›  专栏  ›  技术社区  ›  Poorna Senani Gamage

包装构造函数获取数字格式异常:

  •  1
  • Poorna Senani Gamage  · 技术社区  · 8 年前
    Float f1 = new Float("12.6f");
    

    在上面的代码中,我没有得到任何异常。但是下面的代码 NumberFormatException :

    Long l1= new Long("200L"); 
    

    我知道除了字符之外的所有包装类都提供了两个构造函数

    Integer i1 = new Integer(42); //Primitive
    Integer i2 = new Integer("42"); // String
    Float f1 = new Float(3.14f); //Primitive
    Float f2 = new Float("3.14f"); // String
    

    所以为什么我会有例外

    Long l1= new Long("200L");  
    

    为什么没有呢

    Float f2 = new Float("3.14f");
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   Kiskae    8 年前

    检查施工人员的文件

    为了 Long ,它遵从 Long.parseLong ,它不接受以 L . 然而 Float 具有不同的分析行为,具体取决于是否提供了 3.14d 3.14f ,因此这些都是该特定构造函数的有效输入。