首页 > 解决方案 > Integer类如何在不调用字段或方法的情况下直接存储值

问题描述

例子:

Integer x = 56; 

据我了解,只有在类或方法中调用了字段时,值才能存储在对象中。在Integer类的情况下,它不应该能够在不实例化对象的情况下调用其值字段,因为值不是静态的。这怎么可能?

标签: java

解决方案


该语言可以并且确实为该语言中内置的对象类型做出任何它想要的例外。简而言之,你可以在 Java 中做到这一点,因为 Java 说你可以。

具体来说,将原始值(int、long 等)转换为包装类(Integer、Long 等)之一称为“自动装箱”,并且正如其名称所说,是自动执行的。

为什么允许这样做?因为它对用户来说非常方便。除了自动拆箱外,它还允许您非常接近地将包装类视为它们包含的原始值。


一些术语:您只“调用”方法,而不是变量或字段。“呼叫”的意思是“将控制权转移到”。

在像 Integer 这样的类中,你甚至不知道它有哪些字段。你所知道的是它可以存储一定范围内的整数值。只能通过调用构造函数或将返回 Integer 的静态方法之一将值输入 Integer。

Integer 的文档,以防您没有看到它。请注意,没有“更改”整数值的操作;我们说它是“不可变的”。如果你想要一个不同的值,你只能创建一个新的 Integer。


推荐阅读