为什么java没有呢。整数扩展java。朗,朗?
可以将整数值赋给长变量。 可以将整数值自动装箱到长引用变量中。 但不可能将整数对象分配给长引用变量
我的视图是整数/整数是Long/Long支持的特定值范围
所以层次结构应该是整数扩展长和长扩展数
欢迎各界人士发表意见
你可以在下面搜索框中键入要查询的问题!
可以将整数值赋给长变量。 可以将整数值自动装箱到长引用变量中。 但不可能将整数对象分配给长引用变量
我的视图是整数/整数是Long/Long支持的特定值范围
所以层次结构应该是整数扩展长和长扩展数
欢迎各界人士发表意见
# 1 楼答案
原因很简单:如果Integer扩展为Long,那么Integer的实例也将成为Long的实例:
显然,从数学上讲,情况并非如此,也不应该如此
不要将共享一系列值的类型与共享类层次结构的类型混淆
关于存储等的讨论是实现细节,与此问题涉及的语言设计考虑因素无关
# 2 楼答案
一个
Long
包含一个long
成员(value
),该成员包含该Long
的值如果
Integer
是Long
的子类,Integer
将使用基类的long
成员,这是浪费的(因为long
占用的字节数是int
的两倍),或者忽略它并使用它自己的int
成员,这将更加浪费(因为在这种情况下Integer
类将同时包含基类的int
成员和long
成员)基本类型的装箱版本应该尽可能高效(因为在某些情况下,您必须使用它们,例如
Collection
s,它不能直接保存基本类型)。因此,任何增加Integer
类存储的类层次结构似乎都不是一个好主意