代码之家  ›  专栏  ›  技术社区  ›  Daud

在Java中为浮点包装器赋值

  •  3
  • Daud  · 技术社区  · 15 年前

    以下工作

    float a=3;
    

    Float a=3;
    

    是因为我在哈立德·莫格尔的Java书中读到的一条规则吗?

    不能跟随加宽转换

    3 回复  |  直到 15 年前
        1
  •  3
  •   Buhake Sindi Tesnep    15 年前

    为什么 Float a=3; 因为编译器将 3 在它的整数对象中(本质上,编译器执行以下操作: Float a = new Integer(3); 这已经是一个编译器错误)。Float对象不是Integer对象(即使它们来自同一个 Number

    以下工作:

    Number a = 3;
    

    基本上由编译器翻译为:

    Number a = new Integer(3);
    

    Number a = Integer.valueOf(3);
    

    希望这有帮助。

        2
  •  2
  •   barjak    15 年前
    Float               Integer
      ^                    ^
      |                    |
      |                    |
      v                    v
    float <----------->   int
    

        3
  •  -1
  •   Dead Programmer    15 年前

    浮子a=3.0f;可以工作。

    推荐文章